MySQL:使用不同的条件更新不同的列

时间:2019-05-05 17:46:37

标签: php mysql sql database

请如何根据不同和特定的条件更新不同的列。例如:

UPDATE table
SET col1 = val1 WHERE col1 > 2
SET col2 = val2 WHERE col2 > 1

可以这样写一条SQL UPDATE语句 在不同的条件下,不同的列将在何处更新?

1 个答案:

答案 0 :(得分:5)

使用case

UPDATE table
    SET col1 = (CASE WHEN col1 > 2 THEN val1 ELSE col1 END),
        col2 = (CASE WHEN col2 > 1 THEN val2 ELSE col2 END);

您还可以添加WHERE col1 > 2 or col2 > 1,这样MySQL不会尝试更新所有行。