Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Menerjemahkan Penyata MySQL Kompleks dengan SEDIAKAN, MELAKSANAKAN, dan MENYERAH PERUNTUKAN ke dalam Laravel Eloquent?
Laravel Eloquent menyediakan mekanisme yang elegan untuk melaksanakan pertanyaan SQL menggunakan kod PHP ekspresif. Walau bagaimanapun, menukar pertanyaan MySQL berbilang pernyataan yang kompleks boleh menakutkan. Artikel ini membimbing anda melalui mengubah pertanyaan sedemikian kepada Eloquent, khususnya menangani cabaran yang dikemukakan oleh pernyataan seperti SEDIAKAN, LAKSANAKAN, TETAPKAN dan NYATA PERUNTUKAN.
Untuk menukar pertanyaan MySQL yang disediakan, kami kebanyakannya akan menggunakan pertanyaan mentah dalam Eloquent. Berikut ialah pecahan:
DB::table('item_details')->selectRaw('GROUP_CONCAT(...) INTO @sql')->get(); DB::statement('SET @sql = CONCAT(...)'); DB::statement('PREPARE stmt FROM @sql'); DB::statement('EXECUTE stmt'); DB::statement('DEALLOCATE PREPARE stmt');
Menukar ini kepada kod Eloquent, kita dapat:
$result = DB::table('item_details')->selectRaw('GROUP_CONCAT(...) INTO @sql')->get(); $sql = DB::selectOne('select @sql')->{'@sql'}; $results = ItemDetails::select('item_number', DB::raw('SUM(quantity) as total_quantity'))->selectRaw($sql)->groupBy('item_number')->get();
Pendekatan ini menggunakan satu siri pertanyaan mentah untuk mencapai hasil yang diinginkan. Pertanyaan awal menggabungkan SQL yang dikehendaki ke dalam pembolehubah pengguna @sql. Selepas itu, PHP mendapatkan semula pembolehubah ini menggunakan pertanyaan berasingan dan kemudian membina pertanyaan Eloquent untuk melaksanakan pernyataan SQL akhir, yang termasuk SQL yang digabungkan.
Atas ialah kandungan terperinci Bagaimana untuk Menerjemahkan Penyata MySQL Kompleks dengan SEDIAKAN, MELAKSANAKAN, dan MENYERAH PERUNTUKAN ke dalam Laravel Eloquent?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!