我有一个mysql表,看起来像这样:

id_one     id_two
1          2
2          1
3          2
2          3
4          5
5          4


我想删除具有两个重复值的行,而不管它们位于哪一列,因此示例如下所示:

id_one     id_two
1          2
3          2
5          4


总共有1200万行。关于如何执行此操作的任何想法?
PHP或MySQL查询将是首选。

最佳答案

DELETE a
FROM table1 a
LEFT JOIN
    (
      select id_one, id_two
      from   Table1
      GROUP BY least(id_one, id_two), greatest(id_one, id_two)
    ) b ON a.id_one = b.id_one AND a.id_two = b.id_two
WHERE b.id_two IS NULL



SQLFiddle Demo

09-08 11:09