2015-04-20 65 views
1

我能更新我的表时的myKey(主键)不存在,或者插入时不存在的myKey,此查询:插入多个值与重复键和不同的更新

INSERT INTO customers (id, customer_id, page_id, mykey, hits) 
VALUES 
(NULL, 1, 1, 23, 49) ON DUPLICATE KEY UPDATE hits=hits+49; 

工作正常。 现在我无法弄清楚如何在一个查询中添加多个值。 我想要的是这样的:

INSERT INTO customers (id, customer_id, page_id, mykey, hits) 
VALUES 
(NULL, 1, 1, 23, 49) ON DUPLICATE KEY UPDATE hits=hits+49, 
(NULL, 2, 2, 56, 11) ON DUPLICATE KEY UPDATE hits=hits+11, 
(NULL, 3, 3, 81, 14) ON DUPLICATE KEY UPDATE hits=hits+14; 

但这并不奏效。 是否可以在一个查询中插入或更新像这样的多个值?

回答

1
INSERT INTO customers (id, customer_id, page_id, mykey, hits) 
VALUES 
(NULL, 1, 1, 23, 49), 
(NULL, 2, 2, 56, 11), 
(NULL, 3, 3, 81, 14) 
ON DUPLICATE KEY UPDATE hits=hits+VALUES(hits); 
+0

小的语法错误,在前两组值之后缺少逗号。 –

+0

@JohnMcMahon同意。谢谢 – user1032531

0

末做对重复密钥更新一次:

INSERT INTO customers (id, customer_id, page_id, mykey, hits) 
VALUES 
(NULL, 1, 1, 23, 49), 
(NULL, 2, 2, 56, 11), 
(NULL, 3, 3, 81, 14) 
ON DUPLICATE KEY UPDATE hits=hits+VALUES(hits); 
+0

好好尝试一下工作,因为所有的更新行会有命中=命中+ 14。 – Aiken

+0

@Aiken谢谢,错过了! –