MySQL:仅在满足条件时更新字段

是否可以在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

正确的方法是什么?

回答:

是!

这里有另一个例子:

UPDATE prices

SET final_price= CASE

WHEN currency=1 THEN 0.81*final_price

ELSE final_price

END

之所以可行,是因为MySQL不会更新该行(如果没有更改),如docs中所述:

如果将列设置为其当前值,MySQL会注意到这一点,并且不会对其进行更新。

以上是 MySQL:仅在满足条件时更新字段 的全部内容, 来源链接: utcz.com/qa/422668.html

回到顶部