Mysql删除重复数据通用SQL的两种方法

 更新时间:2023年08月02日 15:19:46   作者:每天进步亿点点的小码农  
本文主要介绍了Mysql删除重复数据通用SQL的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在日常开发过程中,可能会出现一些 bug,导致 Mysql 数据库数据重复,需要删除重复数据,这里记录下删除重复数据的通用 SQL ,方便以后需要时查阅

1、写法一

DELETE t1
FROM
    tbl_name t1
INNER JOIN tbl_name t2
WHERE
    t1.id < t2.id
AND t1.column_1 = t2.column_1
AND t1.column_2 = t2.column_2;

2、写法二

DELETE
FROM
    tbl_name
WHERE
    EXISTS (
        SELECT
            *
        FROM
            (
                SELECT
                    max(id) AS id,
                    column_1,
                    column_2
                FROM
                    tbl_name
                GROUP BY
                    column_1,
                    column_2
                HAVING
                    count(1) > 1
            ) t
        WHERE
            tbl_name.column_1 = t.column_1
        AND tbl_name.column_2 = t.column_2
        AND tbl_name.id < t.id
    )

重复数据中,保留 id 最大的,其余都删除,SQL 中 tbl_name 表示需要删除重复数据的表名,column_1 和 column_2 是用来分组确认重复数据的字段。

到此这篇关于Mysql删除重复数据通用SQL的两种方法的文章就介绍到这了,更多相关Mysql删除重复SQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL中WITH用法小结

    MySQL中WITH用法小结

    WITH子句是MySQL中的一种SQL结构,本文主要介绍了MySQL中WITH用法小结,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • CentOS7下 MySQL定时自动备份的实现方法

    CentOS7下 MySQL定时自动备份的实现方法

    这篇文章主要介绍了CentOS7 下MySQL定时自动备份的实现方法,主要实现了数据库备份,清理过期备份文件功能,需要的朋友可以参考下
    2019-12-12
  • Windows下mysql修改root密码的4种方法

    Windows下mysql修改root密码的4种方法

    这篇文章主要为大家详细介绍了windows下mysql修改root密码的4种方法,大家可以根据的自己的实际情况进行选择,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • MySQL数据库中的TRUNCATE TABLE命令详解

    MySQL数据库中的TRUNCATE TABLE命令详解

    这篇文章主要给大家介绍了关于MySQL数据库中TRUNCATE TABLE命令的相关资料,Truncate Table“清空表”的意思,它对数据库中的表进行清空操作,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • mysql 5.7.9 免安装版配置方法图文教程

    mysql 5.7.9 免安装版配置方法图文教程

    这篇文章主要为大家分享了mysql 5.7.9 免安装版配置方法图文教程,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • Mysql(MyISAM)的读写互斥锁问题的解决方法

    Mysql(MyISAM)的读写互斥锁问题的解决方法

    最近因为数据库读的请求增加,出现了比较严重的读写锁问题,由于主从分离,主服务器很快的执行完了写入的操作,但从库由于有大量的select的查询,会被这些来自主辅同步的update,insert严重堵塞,最后造成所有的Mysql从库负载迅速上升。
    2011-09-09
  • MySQL查询表中某列字段相同的重复数据的方法

    MySQL查询表中某列字段相同的重复数据的方法

    在数据库查询中,我们经常需要查找表中某列中重复的数据,本文将介绍如何使用 SQL 查询语句来查找表中某列字段相同的重复数据,帮助你快速定位重复数据问题并进行处理
    2023-08-08
  • 关于mysql innodb count(*)速度慢的解决办法

    关于mysql innodb count(*)速度慢的解决办法

    innodb引擎在统计方面和myisam是不同的,Myisam内置了一个计数器,所以在使用 select count(*) from table 的时候,直接可以从计数器中取出数据。而innodb必须全表扫描一次方能得到总的数量
    2012-12-12
  • MySql数据分区操作之新增分区操作

    MySql数据分区操作之新增分区操作

    这篇文章主要介绍了MySql数据分区操作之新增分区操作,本文讲解了测试创建分区表文件、插入测试数据、查询P2中的数据等内容,需要的朋友可以参考下
    2015-03-03
  • Mysql 服务 1067 错误 的解决方法:修改mysql可执行文件路径

    Mysql 服务 1067 错误 的解决方法:修改mysql可执行文件路径

    这篇文章主要介绍了Mysql 服务 1067 错误 的解决方法:修改mysql可执行文件路径的相关资料,需要的朋友可以参考下
    2017-05-05

最新评论