是否有一种简单的方法来执行诸如“更新...重复键删除”
之类的操作?
假设我有这个,颜色+图案没有重复:
| style | color | pattern |
----------------------------
| spice | red | dots |
| sea | blue | dots |
如果有人将“spice”样式的颜色更改为“blue”,我希望它看到会有重复,并删除重复的记录。结果只有 1 条记录:
| style | color | pattern |
----------------------------
| sea | blue | dots |
编辑:我很确定没有像上面这样的实际语法,但我认为可能有一些命令或连接的组合可以产生所需的结果。
最佳答案
只需执行两条语句即可。先执行 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;
关于mysql - 更新,但在重复键时删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28776052/