2015-06-25 194 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'只有兩個值,我不認爲這是必要的。 –