Heim >Datenbank >MySQL-Tutorial >Wie füge ich Daten effizient mit „Einfügen ... Auswählen' in Laravel ein?
Effizientes Einfügen von Daten mit Einfügen... Auswählen in Laravel
Abfragekonvertierung für Laravel
Um die bereitgestellte SQL-Abfrage in einen Laravel-Ausdruck zu konvertieren, ist es wichtig zu verstehen, dass Laravel 5.6 und frühere Versionen keine direkte Unterstützung für Insert... Select-Operationen haben. Dies bedeutet, dass eine direkte Konvertierung nicht möglich ist.
Alternativer Ansatz in Laravel
Es gibt jedoch einen Workaround, mit dem Sie das gewünschte Ergebnis erzielen können. Anstatt eine einzelne Abfrage zu versuchen, können Sie sie in zwei Schritte aufteilen:
Beispielcode:
<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>
Laravel 5.7 Update
Laravel 5.7 führte die Methode ->insertUsing() ein und stellt bereit direkte Unterstützung für Einfügen... Auswählen. Das vorherige Beispiel würde vereinfacht werden zu:
<code class="php">DB::table('user_debt_collection')->insertUsing(['email','dinero'], $select);</code>
Das obige ist der detaillierte Inhalt vonWie füge ich Daten effizient mit „Einfügen ... Auswählen' in Laravel ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!