2010-02-08 125 views
5

如何將ON DUPLICATE UPDATE與多值INSERT結合使用?對重複更新的mysql條件插入 - 多條記錄

INSERT INTO tbl_name 
    (key_id,field1,filed2) 
VALUES 
    (1,2,3), 
    (1,5,6), 
    (1,8,9); 
+0

什麼是你期望的結果?我只能讓MySQL允許'(1,5,6)ON DUPLICATE KEY UPDATE key_id = key_id + 1',但執行時我只在表中有一行,值爲:'2,2,3'。 – 2010-02-08 20:16:31

+0

以及SQL是一個例子,但預期的結果是運行一個將插入新的查詢,如果重複的多個值更新。所以如果key_id 1,3,5已經在數據庫中,我運行INSERT 2,3,4和6. 2,4和6應該插入和3應該更新,因爲它是一個重複的 – 2010-02-08 20:20:34

回答

11

我不能嘗試它的權利,但不能使用此語法

INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6) 
    ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b); 

manual

猜猜那麼你的語法是這樣的:

INSERT INTO tbl_name 
    (key_id,field1,filed2) 
VALUES 
    (1,2,3), 
    (1,5,6), 
    (1,8,9) 
ON DUPLICATE KEY 
    UPDATE field1=VALUES(field1), field2=VALUES(field2); 
+0

我一定錯過了這個,日Thnx – 2010-02-08 20:34:49