將MySQL 多語句查詢轉換為Laravel Eloquent
考慮以下MySQL 查詢:
GROUP_CONCAT(DISTINCT
CONCAT( 'ifnull(SUM(case when location_code = ''', location_code , ''' then quantity end),0) AS `', location_code , '`' )) INTO @sql
FROM
item_details;
SET @sql = CONCAT('SELECT item_number,SUM(qutoity) SUas" @sql, '
FROM item_details GROUP BY item_number');從@sql 準備stmt;
執行stmt;
DB::table('item_details')->selectRaw('GROUP_CONCAT(...) INTO @sql')->get();<p> DB: :statement('SET @sql = CONCAT(...)');<strong>DB::statement('PREPARE stmt FROM @sql');</strong>DB::statement('EXECUTE stmt'); </p>DB::statement('DEALLOCATE PREPARE stmt');<p></p>
這裡有更詳細的實作:
DB::table( 'item_details' )->selectRaw('GROUP_CONCAT(...) INTO @sql')->get();<br>$sql = DB::selectOne('select @sql')->{' @sql'};<br>ItemDetails::select('item_number', DB::raw('SUM(quantity) astotal_quantity'))<br><p></p>
這種方法利用原始查詢和Eloquent 方法的組合,有效地處理了從原始MySQL 查詢到Laravel Eloquent 的轉換。
以上是如何將 MySQL 多語句查詢轉換為 Laravel Eloquent?的詳細內容。更多資訊請關注PHP中文網其他相關文章!