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

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


您可以try it out here

关于mysql - 如何删除表中的所有重复记录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17844916/

10-17 00:22