MySQL:仅在满足条件时更新字段
是否可以在MySQL中执行UPDATE查询,仅在满足特定条件时才更新字段值?像这样:
UPDATE testSET
CASE
WHEN true
THEN field = 1
END
WHERE id = 123
换一种说法:
UPDATE testSET
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
正确的方法是什么?
回答:
是!
这里有另一个例子:
UPDATE pricesSET final_price= CASE
WHEN currency=1 THEN 0.81*final_price
ELSE final_price
END
之所以可行,是因为MySQL不会更新该行(如果没有更改),如docs中所述:
如果将列设置为其当前值,MySQL会注意到这一点,并且不会对其进行更新。
以上是 MySQL:仅在满足条件时更新字段 的全部内容, 来源链接: utcz.com/qa/422668.html