一、创建表,插入一批示例数据

create table student(id bigint(20) auto_increment,code int(20),name varchar(255),flag int(2),primary key(id)
)engine=innodb;
insert into student values(1,100,"小李",0);
insert into student values(2,100,"小李",0);
insert into student values(3,100,"小李",0);
insert into student values(4,101,"小张",0);
insert into student values(5,102,"小孙",0);
insert into student values(6,102,"小孙",0);
insert into student values(7,103,"小赵",0);
insert into student values(8,104,"小马",0);
insert into student values(9,105,"小飞",0);
insert into student values(10,105,"小飞",0);

二、根据学生编号和姓名查询重复数据

ps:该班级没有姓名相同的学生(拒绝杠精~~)

select name,count(*) name_count from student group by code,name having name_count > 1;


结果集:查询出所有重复的姓名和数量。

三、过滤重复的数据

方法1、select distinct code,name from student;
方法2、select code,name from student group by code,name;

四、删除重复数据

ps:一般删除重复数据是给数据标志位打标,尽量少用delete。

方法1:将重复数据的标志位打9(废弃), 保留最小ID的数据。

UPDATE student set flag = 9 where `name` in
(select s_name from (select `name` s_name from student group by name having count(1) > 1) temp_1)
and id not in
(select id from (select MIN(ID) id from student group by name having count(1) > 1) temp_2);

方法2:将不重复的数据插入到新表中

新建表:create table student_temp select * from student group by code,name;
删除表:drop table student;
改表名:alter table student_temp rename to student;


方法3:直接在原始表中删除重复数据(慎用!!!)

delete from student where id not in(select * from (select id from student group by code,name)a)

MySQL查询重复数据与去重相关推荐

  1. MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据

    MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据 目录导航: 开发背景: 实战: 表结构如下图所示: 操作: 总结: 回到顶部 开发背景: 最近在做一个批量数据导入到MySQL数据 ...

  2. MYSQL 查询重复数据

    阅读目录 MYSQL 查询重复数据 1 查询 people_no 重复的记录 2 查询 people_no 重复的记录 ,排除最小 id,如果删除改为delete from 3 查询 people_n ...

  3. mysql查询重复数据,并显示所有重复数据具体信息

    本篇重点:查询重复数据并显示完整信息 首先是一个很常见的查重语句 查询重复数据,并显示完整信息 首先是一个很常见的查重语句 // uid为重复数据的条件,如果直接执行只会出现一条数据,并不能展示完整的 ...

  4. Mysql数据库中查询重复数据和去重数据 , 删除重复数据的sql及分析

    数据库中有重复数据时,用到哪些sql语句? 建表: CREATE TABLE `user` (`id` bigint(255) NOT NULL AUTO_INCREMENT,`name` varch ...

  5. python去重复的数据_Python中mysql查询重复数据并删除重复数据

    #coding:utf-8 import mysql.connector mydb = mysql.connector.connect( host='localhost', user='root', ...

  6. 字节跳动技术整理:mysql查询重复数据sql

    正文 作为后端开发,日常操作数据库最常用的是写操作和读操作.读操作我们下边会讲,这个分类里我们主要来看看写操作时为什么会导致 SQL 变慢. 刷脏页 脏页的定义是这样的:内存数据页和磁盘数据页不一致时 ...

  7. 字节跳动高工面试:mysql查询重复数据sql

    正文 作为后端开发,日常操作数据库最常用的是写操作和读操作.读操作我们下边会讲,这个分类里我们主要来看看写操作时为什么会导致 SQL 变慢. 刷脏页 脏页的定义是这样的:内存数据页和磁盘数据页不一致时 ...

  8. 【干货】mysql查询重复数据sql

    前言 本系列的目的是明明白白.彻彻底底的搞定日期/时间处理的几乎所有case.上篇文章铺设所有涉及到的概念解释,例如GMT.UTC.夏令时.时间戳等等,若你还没看过,不仅强烈建议而是强制建议你前往用花 ...

  9. mysql查询重复数据

    https://www.cnblogs.com/LDDXFS/p/9867928.html

最新文章

  1. ckeditor4.4.6添加代码高亮
  2. java slfj教程_SLF4J入门程序
  3. GraphQL 入门第一篇
  4. php html xml,xml和html之间的区别有哪些
  5. 低功耗蓝牙开发权威指南 pdf_新手入门神器!物联网低功耗蓝牙开发板,免费申请...
  6. ImageLoader的简单分析(四)
  7. Java 程序员都该懂的 volatile 关键字
  8. OCX控件安装过程中遇到的问题及解决方法
  9. 油藏弹性存储量计算公式_各类油藏采收率计算公式
  10. win10去掉快捷方式小箭头_快捷方式小箭头很烦人 一招教你取消
  11. crontab 问号_Spring - Quartz - cronExpression中问号(?)的解释
  12. GTD时间管理学习心得(1)
  13. codeblocks 10.5配置vc2008x64编译器
  14. CAN收发器 评估标准理解
  15. Python—PEP8规范
  16. opencv 锐化 java_Java Opencv 实现锐化
  17. 如何在厕所、垃圾桶或小树林捡一枚BCH?看完后我笑了...
  18. 西门子S7-300/400的三种程序上传/下载方式
  19. Java实现2+22+222+2222+22222
  20. 七年磨一剑!苹果王炸产品Vision Pro诞生,未来已来

热门文章

  1. 影评项目(hive)
  2. Linux Centos8 Mysql启动(Active: failed (Result: exit-code))及登录报错(ERROR 1045 (28000): Access denied )
  3. 身为程序员父母,你年薪多少才能让“码二代” 不输在起跑线上
  4. 关于NOIP—信息学奥赛,多的是你不知道的事!
  5. 家居:联思智能控制生产和自动报价
  6. 如何提高你的快速阅读能力
  7. 关于USB4/雷电转PCIE GEN4*4(ASM2464PD Data Sheet)学习及应用整理
  8. 非常逼真的玻璃破碎特效android
  9. ABBYY OCR的客开包安装流程
  10. Unity TouchScript插件+G4 雷达+使用淘宝买的雷达信心采集模拟点击软件 实现多点触控操作