MySQL查询重复数据与去重
一、创建表,插入一批示例数据
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查询重复数据与去重相关推荐
- MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据
MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据 目录导航: 开发背景: 实战: 表结构如下图所示: 操作: 总结: 回到顶部 开发背景: 最近在做一个批量数据导入到MySQL数据 ...
- MYSQL 查询重复数据
阅读目录 MYSQL 查询重复数据 1 查询 people_no 重复的记录 2 查询 people_no 重复的记录 ,排除最小 id,如果删除改为delete from 3 查询 people_n ...
- mysql查询重复数据,并显示所有重复数据具体信息
本篇重点:查询重复数据并显示完整信息 首先是一个很常见的查重语句 查询重复数据,并显示完整信息 首先是一个很常见的查重语句 // uid为重复数据的条件,如果直接执行只会出现一条数据,并不能展示完整的 ...
- Mysql数据库中查询重复数据和去重数据 , 删除重复数据的sql及分析
数据库中有重复数据时,用到哪些sql语句? 建表: CREATE TABLE `user` (`id` bigint(255) NOT NULL AUTO_INCREMENT,`name` varch ...
- python去重复的数据_Python中mysql查询重复数据并删除重复数据
#coding:utf-8 import mysql.connector mydb = mysql.connector.connect( host='localhost', user='root', ...
- 字节跳动技术整理:mysql查询重复数据sql
正文 作为后端开发,日常操作数据库最常用的是写操作和读操作.读操作我们下边会讲,这个分类里我们主要来看看写操作时为什么会导致 SQL 变慢. 刷脏页 脏页的定义是这样的:内存数据页和磁盘数据页不一致时 ...
- 字节跳动高工面试:mysql查询重复数据sql
正文 作为后端开发,日常操作数据库最常用的是写操作和读操作.读操作我们下边会讲,这个分类里我们主要来看看写操作时为什么会导致 SQL 变慢. 刷脏页 脏页的定义是这样的:内存数据页和磁盘数据页不一致时 ...
- 【干货】mysql查询重复数据sql
前言 本系列的目的是明明白白.彻彻底底的搞定日期/时间处理的几乎所有case.上篇文章铺设所有涉及到的概念解释,例如GMT.UTC.夏令时.时间戳等等,若你还没看过,不仅强烈建议而是强制建议你前往用花 ...
- mysql查询重复数据
https://www.cnblogs.com/LDDXFS/p/9867928.html
最新文章
- ckeditor4.4.6添加代码高亮
- java slfj教程_SLF4J入门程序
- GraphQL 入门第一篇
- php html xml,xml和html之间的区别有哪些
- 低功耗蓝牙开发权威指南 pdf_新手入门神器!物联网低功耗蓝牙开发板,免费申请...
- ImageLoader的简单分析(四)
- Java 程序员都该懂的 volatile 关键字
- OCX控件安装过程中遇到的问题及解决方法
- 油藏弹性存储量计算公式_各类油藏采收率计算公式
- win10去掉快捷方式小箭头_快捷方式小箭头很烦人 一招教你取消
- crontab 问号_Spring - Quartz - cronExpression中问号(?)的解释
- GTD时间管理学习心得(1)
- codeblocks 10.5配置vc2008x64编译器
- CAN收发器 评估标准理解
- Python—PEP8规范
- opencv 锐化 java_Java Opencv 实现锐化
- 如何在厕所、垃圾桶或小树林捡一枚BCH?看完后我笑了...
- 西门子S7-300/400的三种程序上传/下载方式
- Java实现2+22+222+2222+22222
- 七年磨一剑!苹果王炸产品Vision Pro诞生,未来已来
热门文章
- 影评项目(hive)
- Linux Centos8 Mysql启动(Active: failed (Result: exit-code))及登录报错(ERROR 1045 (28000): Access denied )
- 身为程序员父母,你年薪多少才能让“码二代” 不输在起跑线上
- 关于NOIP—信息学奥赛,多的是你不知道的事!
- 家居:联思智能控制生产和自动报价
- 如何提高你的快速阅读能力
- 关于USB4/雷电转PCIE GEN4*4(ASM2464PD Data Sheet)学习及应用整理
- 非常逼真的玻璃破碎特效android
- ABBYY OCR的客开包安装流程
- Unity TouchScript插件+G4 雷达+使用淘宝买的雷达信心采集模拟点击软件 实现多点触控操作