php - 删除具有两个重复值的值,无论它们位于哪一列

标签 php mysql duplicates

我有一个 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

关于php - 删除具有两个重复值的值,无论它们位于哪一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14181356/

相关文章:

php - Linux中的PHP编辑器

php - 在 MySQL 中选择一些特殊字符时的奇怪行为

MySQL规范化存储过程性能

javascript - js中如何获取数组的不重复索引?

php - 如何组合 mysql 的多个表(以创建流动的新闻源),但仍能区分记录?

php - 如果 PDO 和 mysqli 不可用,使用 mysql_* 函数是否安全?

PHP-MySQL结果转换为JSON

php - 记住从数据库填充的用户复选框

php - Magento 网站不工作(超时)管理页面正在工作

php - 如何允许php数组中的重复键