Laravel での挿入...選択を使用した効率的なデータの挿入
Laravel のクエリ変換
提供された SQL クエリを Laravel 式に変換するには、Laravel 5.6 以前のバージョンでは挿入...選択操作が直接サポートされていないことを理解することが重要です。これは、直接変換が不可能であることを意味します。
Laravel の代替アプローチ
ただし、望ましい結果を達成できる回避策があります。単一のクエリを試行する代わりに、クエリを 2 つのステップに分割できます。
コード例:
<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 アップデート
Laravel 5.7 では、->insertUsing() メソッドが導入されました。挿入...選択の直接サポート。前の例は次のように簡略化されます:
<code class="php">DB::table('user_debt_collection')->insertUsing(['email','dinero'], $select);</code>
以上がLaravelで「挿入...選択」を使用してデータを効率的に挿入する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。