0

我需要做这样的事情:

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)。如您所见,每一行的增量值是不同的。当前查询总是覆盖旧值。请帮助修改此查询。

4

1 回答 1

2

VALUES必须是文字值,而不是对列的引用:

INSERT INTO `stats` (`id`,`clicks`) VALUES 
  (1, 7),
  (2, 3)
  ON DUPLICATE KEY UPDATE `clicks`=`clicks` + VALUES(`clicks`)
于 2013-05-02T18:16:07.170 回答