我需要做这样的事情:

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/

10-10 22:47