是否可以在 MySQL 上执行 UPDATE 查询,仅在满足特定条件时才更新字段值?像这样的事情:
UPDATE test
SET
CASE
WHEN true
THEN field = 1
END
WHERE id = 123
换句话说,“字段”仅在满足条件时才会更新,否则不执行任何操作。
UPDATE:我的示例查询没有完全指定我的问题,因为可能有更多字段需要无条件更新,换句话说:
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
抱歉缺少信息。
Yes!
这里还有另一个例子:
UPDATE prices
SET final_price= CASE
WHEN currency=1 THEN 0.81*final_price
ELSE final_price
END
这是可行的,因为 MySQL 不会更新行,如果没有更改,正如文档中提到的 https://dev.mysql.com/doc/refman/5.7/en/update.html:
如果将列设置为当前的值,MySQL 会注意到这一点
并且不更新它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)