我需要做这样的事情:
INSERT `stats` (`id`,`clicks`) VALUES
(1, clicks+7),
(2, clicks+3),
....
ON DUPLICATE KEY UPDATE `clicks`=VALUES(clicks)
换句话说,当表没有pk id
的记录时 - 它插入并且clicks
得到7(或3)。当存在具有PK的记录时,click
的旧值应该增加7(或3)。如您所见,每行的增量值不同。当前查询始终覆盖旧值。请帮助修改此查询。
答案 0 :(得分:2)
VALUES
必须是文字值,而不是列的引用:
INSERT INTO `stats` (`id`,`clicks`) VALUES
(1, 7),
(2, 3)
ON DUPLICATE KEY UPDATE `clicks`=`clicks` + VALUES(`clicks`)