是否有一种简单的方法可以执行"UPDATE... ON DUPLICATE KEY DELETE"
之类的内容?
假设我有这个,颜色+图案没有重复:
| style | color | pattern |
----------------------------
| spice | red | dots |
| sea | blue | dots |
如果有人改变了#34; spice"样式的颜色为"蓝色",我希望它看到会有重复,并删除重复的记录。结果只有1条记录:
| style | color | pattern |
----------------------------
| sea | blue | dots |
编辑:我很确定没有像上面这样的实际语法,但他们认为可能会有一些命令或联接的组合会产生所需的结果。
答案 0 :(得分:0)
只做两个陈述。首先执行DELETE,然后在删除行时不会打扰UPDATE。
DELETE mytable WHERE style = 1 AND EXISTS ( SELECT 1 FROM mytable WHERE color = 'blue' AND style <> 1 );
UPDATE mytable SET color = 'blue' WHERE style = 1;
COMMIT;