複数の行を一度に挿入できることは知っていますが、MySQLで複数の行を一度に(1つのクエリで)更新する方法はありますか?
編集します。 例えば、以下のような場合です。
Name id Col1 Col2
Row1 1 6 1
Row2 2 2 3
Row3 3 9 5
Row4 4 16 8
次のUpdatesをすべて1つのクエリにまとめたいです。
UPDATE table SET Col1 = 1 WHERE id = 1;
UPDATE table SET Col1 = 2 WHERE id = 2;
UPDATE table SET Col2 = 3 WHERE id = 3;
UPDATE table SET Col1 = 10 WHERE id = 4;
UPDATE table SET Col2 = 12 WHERE id = 4;
また、更新時に結合を使用することに興味があるかもしれませんが、これも可能です。
Update someTable Set someValue = 4 From someTable s Inner Join anotherTable a on s.id = a.id Where a.id = 4
-- Only updates someValue in someTable who has a foreign key on anotherTable with a value of 4.
編集:更新する値がデータベースの他の場所から来ていない場合は、複数の更新クエリを発行する必要があります。
以下は、1つのテーブルのすべての行を更新するものです。
Update Table Set
Column1 = 'New Value'
次の例では、Column2の値が5以上のすべての行を更新します。
Update Table Set
Column1 = 'New Value'
Where
Column2 > 5
複数のテーブルを更新するUnkwntech'の例がすべてあります。
UPDATE table1, table2 SET
table1.col1 = 'value',
table2.col1 = 'value'
WHERE
table1.col3 = '567'
AND table2.col6='567'