Laravel Eloquent는 표현력이 풍부한 PHP 코드를 사용하여 SQL 쿼리를 실행하는 우아한 메커니즘을 제공합니다. 그러나 복잡한 다중 문 MySQL 쿼리를 변환하는 것은 어려울 수 있습니다. 이 문서에서는 이러한 쿼리를 Eloquent로 변환하는 과정을 안내하고 특히 PREPARE, EXECUTE, SET 및 DEALLOCATE와 같은 문에서 발생하는 문제를 해결합니다.
제공된 MySQL 쿼리를 변환하려면, 우리는 주로 Eloquent에서 원시 쿼리를 사용할 것입니다. 분석 내용은 다음과 같습니다.
DB::table('item_details')->selectRaw('GROUP_CONCAT(...) INTO @sql')->get(); DB::statement('SET @sql = CONCAT(...)'); DB::statement('PREPARE stmt FROM @sql'); DB::statement('EXECUTE stmt'); DB::statement('DEALLOCATE PREPARE stmt');
이를 Eloquent 코드로 변환하면 다음과 같은 결과를 얻을 수 있습니다.
$result = DB::table('item_details')->selectRaw('GROUP_CONCAT(...) INTO @sql')->get(); $sql = DB::selectOne('select @sql')->{'@sql'}; $results = ItemDetails::select('item_number', DB::raw('SUM(quantity) as total_quantity'))->selectRaw($sql)->groupBy('item_number')->get();
이 접근 방식은 일련의 원시 쿼리를 사용하여 원하는 결과를 얻습니다. 초기 쿼리는 원하는 SQL을 사용자 변수 @sql에 연결합니다. 그 후, PHP는 별도의 쿼리를 사용하여 이 변수를 검색한 다음 Eloquent 쿼리를 구성하여 연결된 SQL이 포함된 최종 SQL 문을 실행합니다.
위 내용은 PREPARE, EXECUTE 및 DEALLOCATE를 사용하여 복잡한 MySQL 문을 Laravel Eloquent로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!