我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL中删除重复记录

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL中删除重复记录

工作中,我们经常有需要删除一些重复数据的这种需求。重复数据可能是程序bug造成的

好,让我们看看如何删除这些重复数据

删除重复数据的思路呢,是这样的,查看根据这个重复字段分组后的结果有没有大于1的情况
如果有大于的1的情况呢,那就说明是有重复数据的!

1) 创建数据库

create database ceshi;

2) 创建表

CREATE TABLE t1 (
   id int(10) unsigned NOT NULL AUTO_INCREMENT,
   name varchar(20) not null,
   createdAt timestamp NOT NULL DEFAULT current_timestamp(),
   updatedAt timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

3) 插入数据
insert into t1 values(null,'haha',now(),now()),(null,'haha',now(),now()),(null,'xixi',now(),now()),(null,'heihei',now(),now()),(null,'hoho',now(),now()),(null,'hoho',now(),now()),(null,'sasa',now(),now()),(null,'haha',now(),now()),(null,'sasa',now(),now()),(null,'xixi',now(),now());

4) 查看数据
select * from t1;

MySQL中删除重复记录

5) 根据最小id,重复字段name分组,假设我们的需求就是最后要保留第最小id的这些数据,把其它重复的删除
select min(id),name from t1 group by name having count(name)>1 order by id;
MySQL中删除重复记录

6) 使用别名关联一下,这些数据就是重复的,最后要删除的
select a.* from t1 a,(select *,min(id) from t1 group by name having count(name)>1)as b where a.name=b.name and a.id>b.id;

MySQL中删除重复记录

7) 记得先备份一下数据
create table bak_t1_20190621 like t1;

insert into bak_t1_20190621 select * from t1;

8) 删除数据
delete a from t1 a,(select *,min(id) from t1 group by name having count(name)>1)as b where a.name=b.name and a.id>b.id;

9) 最后检查一下,确实已经没有重复数据了

MySQL中删除重复记录

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL中删除重复记录

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何删除MySQL表中的所有重复记录?

要从表中删除重复记录,我们可以使用 DELETE 命令。现在让我们创建一个表。mysql> create table DuplicateDeleteDemo-> (-> id int,-> name varchar(100)-> );Qu
2023-10-22

Oracle如何删除表中重复记录

1 引言在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来读诸多不便,那么怎么删除这些重复没有用的数据呢?平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示
2022-11-30

MySQL中查询、删除重复记录的方法大全

前言本文主要给大家介绍了关于MySQL中查询、删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍:查找所有重复标题的记录:1select title,count(*) as count from user_table group by title
2018-05-22

MySQL中查询、删除重复记录的方法大全

前言本文主要给大家介绍了关于MySQL中查询、删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍:查找所有重复
2022-08-10

MySQL删除重复记录的方法是什么

删除MySQL表中重复记录的方法有两种:使用DISTINCT关键字和临时表:可以先创建一个临时表,将表中的数据按照去重条件插入到临时表中,然后再将原表清空,并将临时表中的数据插入到原表中。具体步骤如下:CREATE TABLE temp_t
MySQL删除重复记录的方法是什么
2024-05-21

MySQL 如何查找并删除重复记录的实现

大家好,我是只谈技术不剪发的 Tony 老师。由于一些历史原因或者误操作,可能会导致数据表中存在重复的记录;今天我们就来谈谈如何查找 MySQL 表中的重复数据以及如何删除这些重复的记录。 创建示例表 首先创建一个示例表 people 并生
2022-05-11

MySQL中通过SQL语句删除重复记录并且只保留一条记录

目录一、单个字段的操作1、 查询全部重复的数据2、删除全部重复试题3、查询表中多余重复试题(根据depno来判断,除了rowid最小的一个)4、删除表中多余重复试题并且只留1条二、多个字段的操作总结最近在做题库系统,由于在题库中添加了重复的
2023-01-04

编程热搜

目录