Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah saya boleh menukar pertanyaan berbilang pernyataan MySQL kepada Laravel Eloquent?
Menukar MySQL Multi-Statement Query kepada Laravel Eloquent
Pertimbangkan pertanyaan MySQL berikut:
SELECT <br> GROUP_CONCAT(SPECIAL</p> <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();Pendekatan ini mengendalikan penukaran daripada pertanyaan MySQL asal kepada Laravel Eloquent dengan berkesan, menggunakan gabungan pertanyaan mentah dan kaedah Eloquent.
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!