【发布时间】:2013-01-31 08:21:58
【问题描述】:
是否可以在 MySQL 中执行 UPDATE 查询,仅在满足特定条件时才更新字段值?像这样的:
UPDATE test
SET
CASE
WHEN true
THEN field = 1
END
WHERE id = 123
换句话说:
UPDATE test
SET
something = 1, /*field that always gets updated*/
CASE
WHEN true
THEN field = 1 /*field that should only get updated when condition is met*/
END
WHERE id = 123
这样做的正确方法是什么?
【问题讨论】:
-
在更新查询中使用 case 的唯一原因是,如果您想根据条件以不同方式更新行。如果你只是想更新一些行,只需在 where 子句中添加条件即可。
标签: mysql if-statement sql-update