我正在做,INSERT ... ON DUPLICATE KEY UPDATE但是我需要更新部分是有条件的,只有在某些额外条件发生变化时才进行更新。
INSERT ... ON DUPLICATE KEY UPDATE
但是,这WHERE是不允许的UPDATE。有什么解决方法吗?
WHERE
UPDATE
我无法进行INSERT / UPDATE / SELECT的组合,因为这需要对复制进行处理。
我建议您使用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);