2013-05-02 48 views
0

我需要做這樣的事情增量:MySQL的:質量插入新記錄或現有

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

溶液通過自己發現:ON DUPLICATE KEY UPDATE'clicks' ='clicks' + VALUES(點擊) – WindBridges 2013-05-02 18:16:26

回答

2

VALUES必須是文字值,不引用列:

INSERT INTO `stats` (`id`,`clicks`) VALUES 
    (1, 7), 
    (2, 3) 
    ON DUPLICATE KEY UPDATE `clicks`=`clicks` + VALUES(`clicks`)