Laravel を使用してデータベース駆動型の Web サイトを開発しています。現在、データベースの更新に問題があります。一括更新を実行したい。普段はこんな感じで走っています。
$data = [
[
'col_1'=>$value1
],
[
'col_1'=>$value2
],
[
'col_1'=>$value3
],
[
'col_1'=>$value4
]
];
MyTableObject::update($data)->where('col_2'=>$col_2_val);
上記のコードでわかるように、where 句は、更新されるすべての行に対して 1 つの条件のみをチェックしています。しかし、私が望むのは、行またはクエリごとに異なる where 句の条件が必要なことです。foreach を使用して行ごとにクエリを実行するには、多くの行を更新する必要があるため、時間がかかります。それを示すために、それはこのようなものになります。
$data = [
[
'col_1'=>$value1,
'col_2'=>$where_value_1 // This is not the column to be updated. That is for where clause.
],
[
'col_1'=>$value2,
'col_2'=>$where_value_2 // This is not the column to be updated. That is for where clause.
],
[
'col_1'=>$value3,
'col_2'=>$where_value_3
],
[
'col_1'=>$value4,
'col_2'=>$where_value_4
]
];
MyTableObject::update($data)->where('where_col_name'=>'col_2');
このリンクを見つけましたが、答えは明確で完全ではありません。Laravelでそれを行うことは可能ですか?どうすればできますか?