像:
INSERT INTO `video_play_counts`
(`id`,`video_id`,`date`,`count`,`created`,`modified`)
VALUES
("",1,"2016-12-01",26,"2016-12-03 17:51:53","2016-12-03 17:51:53")
ON DUPLICATE KEY UPDATE
`count` = GREATEST(`count`,VALUES(`count`)),
`modified` = IF(VALUES(`count`) > `count`,VALUES(`modified`),`modified`)
因此,我在video_id
和date
上有一个唯一键,当我对此唯一键进行更新时,如果新count
值大于现有值,我还想相应地更新modified
字段。
count
字段按预期更新,但modified
字段在UPDATE的情况下不会获得新值。
请注意,我使用它在一个查询中进行多次插入/更新,只是在这个例子中它只有一组值。
我做错了什么?
答案 0 :(得分:1)
我还没有测试过,但我几乎肯定你必须切换查询的最后两行,这样你才能首先设置modified
并将count
设置为VALUES({{1} }),否则count设置为GREATEST且永远不会更大count