我需要做这样的事情:
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)。如您所见,每一行的增量值都不同。当前查询始终会覆盖旧值。请帮助修改此查询。 最佳答案
VALUES
必须是文字值,而不是对列的引用:
INSERT INTO `stats` (`id`,`clicks`) VALUES
(1, 7),
(2, 3)
ON DUPLICATE KEY UPDATE `clicks`=`clicks` + VALUES(`clicks`)
关于mysql - MySQL:大量插入新记录或增加现有记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16344784/