使用重复键和不同更新插入多个值

时间:2015-04-20 23:35:23

标签: mysql

我可以在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;

但这不起作用。 是否可以在一个查询中插入或更新这样的多个值?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

在结束时执行ON DUPLICATE KEY UPDATE:

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);