Laravel 中使用Insert...Select 高效率插入資料
Laravel 的查詢轉換
Laravel 的查詢轉換
Laravel 的查詢轉換
Laravel 的查詢轉換要將提供的SQL 查詢轉換為Laravel 表達式,了解Laravel 5.6 及更早版本缺乏對Insert...Select 操作的直接支援至關重要。這意味著直接轉換是不可能的。
利用 Laravel 的 QueryBuilder 建立一個檢索必要資料的 Select 查詢。使用 getBindings() 方法提取綁定參數。
使用原始 SQL 查詢,使用步驟 1 中擷取的資料執行插入。綁定從 getBindings() 取得的綁定參數。<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>
範例程式碼:
<code class="php">DB::table('user_debt_collection')->insertUsing(['email','dinero'], $select);</code>
以上是如何在 Laravel 中使用 `Insert...Select` 有效率地插入資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!