0

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でそれを行うことは可能ですか?どうすればできますか?

4

2 に答える 2