Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memasukkan Data dengan Cekap Menggunakan `Insert... Select` dalam Laravel?
Penyisipan Data yang Cekap Menggunakan Sisipan... Pilih dalam Laravel
Penukaran Pertanyaan untuk Laravel
Untuk menukar pertanyaan SQL yang disediakan kepada ungkapan Laravel, adalah penting untuk memahami bahawa Laravel 5.6 dan versi terdahulu tidak mempunyai sokongan langsung untuk operasi Insert... Select. Ini bermakna penukaran langsung tidak boleh dilakukan.
Pendekatan Alternatif dalam Laravel
Walau bagaimanapun, terdapat penyelesaian yang membolehkan anda mencapai hasil yang diingini. Daripada mencuba satu pertanyaan, anda boleh membahagikannya kepada dua langkah:
Kod Contoh:
<code class="php">// Step 1: Generate the Select query $select = User::where(...) ->where(...) ->whereIn(...) ->select(array('email','moneyOwing')); // Step 2: Get binding parameters $bindings = $select->getBindings(); // Step 3: Construct raw SQL insert query $insertQuery = 'INSERT into user_debt_collection (email,dinero) ' . $select->toSql(); // Step 4: Execute the insert \DB::insert($insertQuery, $bindings);</code>
Kemas Kini Laravel 5.7
Laravel 5.7 memperkenalkan kaedah ->insertUsing(), menyediakan sokongan langsung untuk Sisipkan... Pilih. Contoh sebelumnya akan dipermudahkan kepada:
<code class="php">DB::table('user_debt_collection')->insertUsing(['email','dinero'], $select);</code>
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Data dengan Cekap Menggunakan `Insert... Select` dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!