仅删除Mysql中的重复记录

仅删除Mysql中的重复记录,mysql,duplicates,rows,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语句。我只想使用Delete查询,IIRC MySQL不允许您在in子句中引用变异表,除非添加额外的间接层 DELETE

我有一张桌子

------------
id name
------------
1  master
2  datagrid 
3  zewa
4  leumas
5  delta
6  master
7  master
8  master
9  delta
我只想删除重复的行。因此,从上表中,应该删除master和delta的所有行


注意:我不想使用临时表或任何Alter语句。我只想使用Delete查询,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) 

IIRC MySQL不允许在in子句中引用mutating表,除非添加额外的间接层

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

从表中删除,其中“按countname>1的名称从表组中选择名称”

从表中删除,其中“按countname>1的名称从表组中选择名称”

是否应删除master和delta的所有行?不是所有的,只有一条?不,甚至一条记录都不应该存在。所有重复行都应删除所有主行和增量行都应删除吗?不是所有的,只有一条?不,甚至一条记录都不应该存在。所有重复的行都应该删除。这不起作用。。。您不能在子查询中使用对变异表的引用…这不起作用。。。不能在子查询中使用对突变表的引用。。。。