仅删除Mysql中的重复记录

nee*_*raj 1 mysql rows duplicates

我有一张桌子

------------
id name
------------
1  master
2  datagrid 
3  zewa
4  leumas
5  delta
6  master
7  master
8  master
9  delta
Run Code Online (Sandbox Code Playgroud)

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

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

Mar*_*ith 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) 
Run Code Online (Sandbox Code Playgroud)