【发布时间】:2020-04-23 08:06:10
【问题描述】:
我知道我可以做类似的事情
ON DUPLICATE KEY UPDATE
exampleColumn1 = IF (exampleCondition = 1, VALUES(exampleColumn1), exampleColumn1),
exampleColumn2 = IF (exampleCondition = 1, VALUES(exampleColumn2), exampleColumn2),
exampleColumn3 = IF (exampleCondition = 1, VALUES(exampleColumn3), exampleColumn3),
# Etc etc
但由于我每次都在做完全相同的条件检查,所以肯定有更简洁的方法来写这个吗?在写出条件有点长的情况下,这将特别好。
根据我的阅读,如果我为此编写一个函数似乎是可能的,但我可以在一个普通的旧查询中做到这一点吗?
【问题讨论】:
-
请向我们展示整个查询。
-
对于任何 INSERT INTO ... ON DUPLICATE KEY UPDATE ... 格式查询,这意味着更多的一般问题,其中 ON DUPLICATE KEY UPDATE 中的每一列都按顺序应用完全相同的 IF 条件来决定是否更新值。
标签: mysql sql sql-update sql-insert on-duplicate-key