首頁  >  文章  >  後端開發  >  如何將 MySQL 多語句查詢轉換為 Laravel Eloquent?

如何將 MySQL 多語句查詢轉換為 Laravel Eloquent?

Patricia Arquette
Patricia Arquette原創
2024-10-26 04:29:31125瀏覽

How can I convert a MySQL multi-statement query to Laravel Eloquent?

將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;

取消分配準備stmt;


挑戰在於將此查詢轉換為Laravel Eloquent,特別是考慮到各種語句:PREPARE、EXECUTE、SET 和DEALLOCATE。上涉及原始查詢:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn