2015-06-25 198 views
0

我真的被多个插入值阻塞,如果存在任何一个值,请自定义更新。这是我的查询不起作用:MYSQL,多重插入和重复更新

INSERT INTO `table` (f1,f2,status) VALUES 
(1,5,'on') ON DUPLICATE KEY UPDATE status='off', 
(3,2,'on') ON DUPLICATE KEY UPDATE status='off', 
(15,20,'on') ON DUPLICATE KEY UPDATE status='off'; 

有什么解决方案可以做这个查询吗?

感谢大家

+0

自定义更新你想要特定的字段更新或删除旧的值与新的? –

回答

1

您只能每INSERT一个ON DUPLICATE KEY

INSERT INTO `table`(f1, f2, status) 
    SELECT 1 ,5, 'on' UNION ALL 
    SELECT 3, 2, 'on' UNION ALL 
    SELECT 15, 20, 'on' 
    ON DUPLICATE KEY UPDATE status = 'off'; 

(当然,你也可以用VALUES做到这一点,我只是喜欢SELECT因为它是更普遍的。)

+0

哦,我觉得自己很愚蠢!谢谢它的作品 – Zeta

+0

戈登,如何添加IF也是可能的? ON DUPLICATE KEY UPDATE status ='off'IF status ='on'; – Zeta

+0

@ user3308323。 。 。如果'status'只有两个值,我不认为这是必要的。 –