Mysql 如何删除表中的所有重复记录?

Mysql 如何删除表中的所有重复记录?,mysql,sql,where,sql-delete,Mysql,Sql,Where,Sql Delete,我正在寻找一种删除表中所有重复记录的方法。 我有一个查询,但不起作用: delete from lista where id in ( select id from lista group by tytul_pl having count(tytul_pl) > 1 ); 服务器响应: 错误代码:1093。无法为中的更新指定目标表“lista” FROM子句 此查询: select id from lista group by tytul_pl havin

我正在寻找一种删除表中所有重复记录的方法。 我有一个查询,但不起作用:

delete from lista
where id in
(
    select id
    from lista
    group by tytul_pl
    having count(tytul_pl) > 1
);
服务器响应:

错误代码:1093。无法为中的更新指定目标表“lista” FROM子句

此查询:

select id
from lista
group by tytul_pl
having count(tytul_pl) > 1
他工作得很好


错误在哪里?

我想你想要的是这个

DELETE lista FROM lista 
LEFT OUTER JOIN (
      SELECT MIN(ID) AS minID 
      FROM lista 
      GROUP BY tytul_pl) AS keepRowTable ON lista.ID = keepRowTable.minID
WHERE keepRowTable.minID IS NULL

您可以

这将有助于保留一条记录并删除所有其他重复项:

DELETE t1 
FROM lista t1
JOIN lista t2 
 ON t1.id > t2.id 
AND t1.tytul_pl = t2.tytul_pl

您使用的是什么数据库管理系统?我使用的是MySQL Server 5.6 CEDid。您想保留一条记录并删除重复的记录,或者删除所有重复的记录吗?我想保留一条记录。