对重复更新的mysql条件插入 - 多条记录

问题描述:

如何将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

我不能尝试它的权利,但不能使用此语法

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