我正在执行 INSERT ... ON DUPLICATE KEY UPDATE
但我需要更新部分是有条件的,只有在某些额外条件发生变化时才进行更新。
但是,WHERE
在此 UPDATE
上是不允许的。有什么解决方法吗?
我不能进行 INSERT/UPDATE/SELECT 的组合,因为这需要在复制过程中起作用。
最佳答案
我建议你使用 IF() 来做到这一点。
引用:conditional-duplicate-key-updates-with-mysql
INSERT INTO daily_events (created_on, last_event_id, last_event_created_at)
VALUES ('2010-01-19', 23, '2010-01-19 10:23:11')
ON DUPLICATE KEY UPDATE
last_event_id = IF(last_event_created_at < VALUES(last_event_created_at), VALUES(last_event_id), last_event_id);
关于mysql - INSERT ... 使用 WHERE 进行重复的 key 更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2469457/