如何在mysql中更新多行不同条件的WHERE?[重复]

问题描述 投票:0回答:2

例如

Set col1 to A WHERE id=X 
set col1 to B WHERE ID=Y

ID是唯一的,但不是主键。我想在一个更新查询中完成这个操作。

php mysql sql-update rows
2个回答
1
投票

您可以使用 CASE 表达式,根据 ID:

UPDATE yourtable
SET col1 = CASE ID WHEN X THEN A
                   WHEN Y THEN B
                   ELSE col1
           END

在SQLFiddle上进行演示

请注意使用 ELSE 子句的值,使 col1 不改时 ID 不等于 XY. 这也可以通过 WHERE 子句。

UPDATE yourtable
SET col1 = CASE ID WHEN X THEN A
                   WHEN Y THEN B
           END
WHERE ID IN (X, Y)

在SQLFiddle上演示


-1
投票

你应该像这样使用多个语句。

update table1 set col1 = 'A' where id = 1;
update table1 set col1 = 'B' where id = 2;
© www.soinside.com 2019 - 2024. All rights reserved.