MySQL使用不同的where子句更新了3列


MySQL update 3 columns with different where clauses

我有一个有6列的表——ROW1a、ROW1b、ROW2a、ROW2b、ROW3a、ROW3b。

如何更新ROW1a ROW1b=1和ROW2a ROW2b=2和ROW3a ROW3b=3

您需要3个UPDATE语句:

UPDATE `table` SET ROW1a = 'something' WHERE ROW1b = 1
UPDATE `table` SET ROW2a = 'something' WHERE ROW2b = 1
UPDATE `table` SET ROW3a = 'something' WHERE ROW3b = 1

最佳3次更新。

或者使用

UPDATE table
SET ROW1a = IF(ROW1b, ..., ROW1a),
    ROW2a = IF(ROW2b, ..., ROW2a),
    ROW3a = IF(ROW2b, ..., ROW3a)
WHERE ROW1b OR ROW2b OR ROW3b

您需要对每个条件进行更新。

UPDATE table_name
   SET ROW1a=value
 WHERE ROW1b=1;
UPDATE table_name
   SET ROW2a=value
 WHERE ROW2b=2;

(…)