2015-04-20 64 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謝謝,錯過了! –