MYSQL,多次插入和ON DUPLICATE UPDATE

时间:2015-06-25 11:14:48

标签: mysql insert duplicates

我确实被多个插入值阻止,如果存在任何一个,请执行自定义更新。这是我的查询不起作用:

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';

有任何解决方案可以执行此查询吗?

谢谢大家

1 个答案:

答案 0 :(得分:1)

ON DUPLICATE KEY只能有一个INSERT

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,因为它更为通用。)