Menukar MySQL Multi-Statement Query kepada Laravel Eloquent
Pertimbangkan pertanyaan MySQL berikut:
SELECT <br> GROUP_CONCAT(SPECIAL</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">CONCAT( 'ifnull(SUM(case when location_code = ''', location_code , ''' then quantity end),0) AS `', location_code , '`' )
) KE DALAM @sql
DARI
butiran_item;
SET @sql = CONCAT('PILIH item_nombor,SUM(kuantiti) sebagai "jumlah_kuantiti", ', @sql, '
FROM item_details GROUP BY item_number');
SEDIAKAN stmt DARIPADA @sql;
LAKSANAKAN stmt;
DEALTEMPAT SEDIAKAN stmt;
>
Penyelesaian:
Penukaran sebahagian besarnya melibatkan pertanyaan mentah: DB::statement('SET @sql = CONCAT(...)');
DB::statement('SEDIAKAN stmt DARI @sql');
DB::statement('LAKSANAKAN stmt');
DB::statement('DEALLOCATE PREPARE stmt');
$sql = DB::selectOne('select @sql')->{' @sql'};
Butiran Item::select('nombor_item', DB::raw('SUM(kuantiti) sebagai jumlah_kuantiti'))
->selectRaw($sql) ->groupBy('item_number') ->get();
Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar pertanyaan berbilang pernyataan MySQL kepada Laravel Eloquent?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!