我确实被多个插入值阻止,如果存在任何一个,请执行自定义更新。这是我的查询不起作用:
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)
每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
,因为它更为通用。)