博客
关于我
Mysql删除重复数据通用SQL
阅读量:789 次
发布时间:2023-02-12

本文共 887 字,大约阅读时间需要 2 分钟。

在日常开发过程中,可能会遇到一些问题,导致MySQL数据库中出现重复数据。为了解决这个问题,可以使用以下两种通用的SQL方法来删除重复数据,这些方法也可以方便以后查阅和使用。

1、第一种方法

DELETE t1 FROM tbl_name t1INNER JOIN tbl_name t2ON t1.id < t2.idAND t1.column_1 = t2.column_1AND t1.column_2 = t2.column_2;

这种方法通过将所要删除的记录与其重复记录进行比较,并保留id最大的记录来替换原有记录。通过INNER JOIN操作,可以确保只处理id较小的记录,从而保留最新的数据。


2、第二种方法

DELETE FROM tbl_nameWHERE 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);

这第二种方法通过先查找出具有重复记录的组(GROUP BY语句),然后在每个组中保留id最大的记录来替换原有记录。剩下的记录会被删除,确保数据库中只保留最新的数据。


需要注意的是,以上两种方法都基于相同的原理:通过比较column_1column_2字段的值,找出重复的记录,并保留id最大的记录。tbl_name是您需要删除重复数据的表名,而column_1column_2是用来唯一标识记录的字段。

使用这些方法可以有效地清理数据库中的重复数据,确保数据的完整性和唯一性。

转载地址:http://wmbfk.baihongyu.com/

你可能感兴趣的文章
mysql加入安装策略_一键安装mysql5.7及密码策略修改方法
查看>>
mysql加强(1)~用户权限介绍、分别使用客户端工具和命令来创建用户和分配权限
查看>>
mysql加强(2)~单表查询、mysql查询常用的函数
查看>>
mysql加强(3)~分组(统计)查询
查看>>
mysql加强(4)~多表查询:笛卡尔积、消除笛卡尔积操作(等值、非等值连接),内连接(隐式连接、显示连接)、外连接、自连接
查看>>
mysql加强(5)~DML 增删改操作和 DQL 查询操作
查看>>
mysql加强(6)~子查询简单介绍、子查询分类
查看>>
mysql加强(7)~事务、事务并发、解决事务并发的方法
查看>>
MySQL千万级多表关联SQL语句调优
查看>>
mysql千万级大数据SQL查询优化
查看>>
MySQL千万级大表优化策略
查看>>
MySQL单实例或多实例启动脚本
查看>>
MySQL压缩包方式安装,傻瓜式教学
查看>>
MySQL原理、设计与应用全面解析
查看>>
MySQL原理简介—1.SQL的执行流程
查看>>
MySQL原理简介—10.SQL语句和执行计划
查看>>
MySQL原理简介—11.优化案例介绍
查看>>
MySQL原理简介—12.MySQL主从同步
查看>>
MySQL原理简介—2.InnoDB架构原理和执行流程
查看>>
MySQL原理简介—3.生产环境的部署压测
查看>>