如何删除mysql中的多个重复行

时间:2014-09-22 00:23:37

标签: mysql sql

id   number
1       20
2       20
3       30
4       18

大家好,我有一个名为numbers的表,这个表包含数千行 - 上面的示例 - 该表有很多重复项。我想要一种方法来使用mysql查询简单地删除那些重复项。查询还应删除原始编号和副本本身。例如,应删除id 12值,因为它们是重复的。 谢谢你的帮助

2 个答案:

答案 0 :(得分:2)

在MySQL中,您可以使用join

执行此操作
delete n
    from numbers n join
         (select number
          from numbers
          group by number
          having count(*) > 1
         ) nn
         on n.number = nn.number;

Here是SQL Fiddle的一个例子。

答案 1 :(得分:1)

我们可以通过group by和having

获得重复
Delete a.* from TableA a
Where Number in ( 
Select number from (
select number from tableA 
group by number
having count(*) > 1)
)