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

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

Patricia Arquette
發布: 2024-10-26 04:29:31
原創
183 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板