如何从MySQL表中删除重复的行

我有一个MySQL表,如:

ID, Col1, Col2, Col3, Col4, etc...

ID是主键,自表创建以来一直在工作.

我想要做的是删除所有其他列完全相同的所有记录.

DELETE DupRows.*
FROM MyTable AS DupRows
   INNER JOIN (
      SELECT MIN(ID) AS minId, col1, col2
      FROM MyTable
      GROUP BY col1, col2
      HAVING COUNT(*) > 1
   ) AS SaveRows ON SaveRows.col1 = DupRows.col1 AND SaveRows.col2 = DupRows.col2
      AND SaveRows.minId <> DupRows.ID;

当然,您必须将所有三个位置的col1,col2扩展到所有列.

编辑:我刚从我保留并重新测试的脚本中取出它,它在MySQL中执行.

转载注明原文:如何从MySQL表中删除重复的行 - 代码日志