我有一张下表
------------
id name
------------
1 master
2 datagrid
3 zewa
4 leumas
5 delta
6 master
7 master
8 master
9 delta
我只想删除重复(重复)行。因此,从上表中,应删除“master”和“delta”的所有行。
注意:我不想使用临时表或任何Alter语句。我只想使用删除查询
答案 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);