仅在满足一个条件的情况下,ON DUPLICATE KEY UPDATE的Terser语法?

0xN0:

我知道我可以做类似的事情

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

但是,由于我每次都执行完全相同的条件检查,因此肯定有一种更简洁的方式来编写此代码吗?在条件写得更长一些的情况下,这将特别好。

从我阅读的内容来看,如果我为此编写了一个函数,这似乎是可能的,但是我可以在普通的旧查询中做到吗?

专线小巴:

简而言之:不。on duplicate key语法不支持任何形式的过滤(where条件或类似条件)。

但是,如果条件很长,那么一个窍门是利用用户变量来保存其返回值,您可以在以下分配中重复使用该变量:

on duplicate key update
    exampleColumn1 = if(@do_update := (exampleCondition = 1), values(exampleColumn1), exampleColumn1),
    exampleColumn2 = if(@do_update, values(exampleColumn2), exampleColumn2),
    exampleColumn3 = if(@do_update, values(exampleColumn3), exampleColumn3)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用ON DUPLICATE KEY UPDATE语法有条件地更新包含定界值的列

从python使用ON DUPLICATE KEY UPDATE

调整 INSERT ON DUPLICATE KEY UPDATE

ON DUPLICATE KEY UPDATE错误响应

( INSERT ... ON DUPLICATE KEY UPDATE ... ),如何更改更新条件字段?

php ON DUPLICATE KEY UPDATE 还说 1062: Duplicate entry for key 'PRIMARY'

与“ UPDATE”相比,“ INSERT ... ON DUPLICATE KEY UPDATE”的性能

我不断收到SQL错误(1064):使用ON DUPLICATE KEY UPDATE在'10)附近使用的正确语法

NodeJS 中的 MySQL ON DUPLICATE KEY UPDATE

在MVC中使用ON DUPLICATE KEY UPDATE的问题

“ INSERT IGNORE”与“ INSERT ... ON DUPLICATE KEY UPDATE”

在Zend中查询“ ON DUPLICATE KEY UPDATE”

ON DUPLICATE KEY UPDATE 非索引列

仅更新ON DUPLICATE KEY UPDATE的更改值

ON DUPLICATE KEY UPDATE回调-MySQL

ON DUPLICATE KEY UPDATE 콜백-MySQL

python mysql DUPLICATE KEY UPDATE rrror

MySQL-使用ON DUPLICATE KEY UPDATE将数据插入一个列,保留其他列

一次查询中的UPDATE,INSERT和ON DUPLICATE KEY UPDATE

PDO Inert Into On Duplicate Key,条件不工作

&& 运算符是否仅在满足前一个条件的情况下评估右侧?

MYSQL:有没有一种方法可以使用ON DUPLICATE KEY UPDATE从另一个表插入值?

如何在 django 中执行...ON DUPLICATE KEY UPDATE...

在INSERT INTO ... ON DUPLICATE KEY UPDATE之前检查值是否存在

MySQL ON DUPLICATE KEY UPDATE用于在单个查询中插入多行

执行:sql行受ON DUPLICATE KEY UPDATE影响

INSERT ON DUPLICATE KEY UPDATE的线程安全性

HSQLDB的“ ON DUPLICATE KEY UPDATE”功能是否不如MYSQL那样?

PHP MySQL INSERT ON DUPLICATE KEY UPDATE 不起作用