如何删除此设置中的重复项?
id A B
----------------
1 apple 2
2 orange 1
3 apple 2
4 apple 1
在这里我想删除出现两次的 (apple,2) 。 ID 号是唯一的。如果不是,我会使用 DISTINCT 关键字。我可以知道如何从 A 列和 B 列中创建一个键,然后在其上使用 DISTINCT 关键字来获得我需要的东西吗?非常感谢您的回复。
delete from myTable
where id not in
(select min(id)
from myTable
group by A, B)
即括号中的 select 返回 A 和 B 的每个分组的第一个 id;删除不在该集合中的所有 id 将删除 A+B 组合在其第一次出现“之后”出现的所有出现。
EDIT:这个语法似乎有问题:请参阅错误报告:
http://bugs.mysql.com/bug.php?id=5037 http://bugs.mysql.com/bug.php?id=5037
一个可能的解决方法是这样做:
delete from myTable
where id not in
(
select minid from
(select min(id) as minid from myTable group by A, B) as newtable
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)