一尘不染

插入…在何处使用双键更新?

mysql

我正在做,INSERT ... ON DUPLICATE KEY UPDATE但是我需要更新部分是有条件的,只有在某些额外条件发生变化时才进行更新。

但是,这WHERE是不允许的UPDATE。有什么解决方法吗?

我无法进行INSERT / UPDATE / SELECT的组合,因为这需要对复制进行处理。


阅读 253

收藏
2020-05-17

共1个答案

一尘不染

我建议您使用IF()来做到这一点。

参考:条件重复键更新与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);
2020-05-17