仅删除Mysql中的重复记录

时间:2012-06-25 11:46:12

标签: mysql duplicates rows

我有一张下表

------------
id name
------------
1  master
2  datagrid 
3  zewa
4  leumas
5  delta
6  master
7  master
8  master
9  delta

我只想删除重复(重复)行。因此,从上表中,应删除“master”和“delta”的所有行。

注意:我不想使用临时表或任何Alter语句。我只想使用删除查询

2 个答案:

答案 0 :(得分:8)

IIRC MySQL不允许您在IN子句中引用变异表,除非添加一个额外的间接层。

DELETE FROM YourTable
WHERE  name IN (SELECT name
                FROM   (SELECT name
                        FROM   YourTable
                        GROUP  BY name
                        HAVING COUNT(name) > 1) AS T) 

答案 1 :(得分:-2)

从表格中删除其中的名称(从表格组中选择名称具有计数(名称)> 1);