복잡한 다중 문 MySQL 쿼리를 Laravel Eloquent로 변환
이 쿼리에는 GROUP_CONCAT, SET, PREPARE, EXECUTE 및 DEALLOCATE는 Laravel Eloquent로 변환하는 데 부담이 될 수 있습니다. 단계별로 분석해 보겠습니다.
첫째, Laravel은 PREPARE 및 EXECUTE와 같은 준비된 문을 지원하지 않습니다. 그러나 원시 쿼리를 사용하여 이러한 각 문을 개별적으로 실행할 수 있습니다.
<code class="php">DB::table('item_details')->selectRaw('GROUP_CONCAT(...) INTO @sql')->get(); DB::statement('SET @sql = CONCAT(...)'); DB::statement('DEALLOCATE PREPARE stmt');</code>
다음으로 SET 문의 결과를 검색해야 합니다. 스칼라 값이므로 selectOne()을 사용하여 가져올 수 있습니다.
<code class="php">$sql = DB::selectOne('select @sql')->{'@sql'};</code>
마지막으로 Eloquent 쿼리에서 검색된 SQL 문자열을 사용할 수 있습니다.
<code class="php">ItemDetails::select('item_number', DB::raw('SUM(quantity) as total_quantity')) ->selectRaw($sql) ->groupBy('item_number') ->get();</code>
이 코드는 원시 쿼리를 사용하여 다중 문 MySQL 쿼리를 실행하고 예상 결과를 검색합니다.
위 내용은 복잡한 다중 명령문 MySQL 쿼리를 Laravel Eloquent로 어떻게 변환할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!