Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > Mysql删除重复SQL

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

作者:每天进步亿点点的小码农

本文主要介绍了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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文