MySQL查询和删除重复记录
例:
1、创建学生表
1 CREATE TABLE student( 2 id INT PRIMARY KEY, 3 stuno VARCHAR(12) NOT NULL, 4 stuname VARCHAR(30) NOT null 5 );
2、向学生表中插入数据
1 INSERT INTO student VALUES ('1','131111099','小李'); 2 INSERT INTO student VALUES ('2','131111100','小陈'); 3 INSERT INTO student VALUES ('3','131111101','小王'); 4 INSERT INTO student VALUES ('4','131111102','小黑'); 5 INSERT INTO student VALUES ('5','131111099','小曹'); 6 INSERT INTO student VALUES ('6','131111099','小李');
3、查找仅学号重复的记录
从插入记录上看,id为1、5、6的记录学号都是相同的,那么验证一下查询的数据是否正确
1 -- 学号重复 2 -- 先按学号进行分组,然后查询学数量 > 1的记录的学号 3 SELECT * FROM student WHERE stuno IN ( 4 -- 查找重复的学号 5 SELECT stuno FROM student GROUP BY stuno HAVING COUNT(stuno) > 1 6 );
查询结果如下:
查询结果和我们事先分析的数据一致,所以查询结果是正确的。
4、查找学号和姓名均重复的记录
从插入记录上看,只有id为1、6的记录学号和姓名是完全重复的,那么验证一下查询的数据是否正确
1 -- 学号和姓名均重复 2 SELECT * FROM student WHERE (stuno,stuname) -- 注意:此处一定要加括号,当成联合字段来处理 3 IN ( 4 -- 查找学号和姓名均重复的学生信息 5 SELECT stuno,stuname FROM student GROUP BY stuno,stuname HAVING COUNT(1) > 1 6 );
查询结果如下:
查询结果和我们事先分析的数据一致,所以查询结果是正确的。
5、删除多余的重复记录(多个字段),只保留最小id的记录
重复记录可能有多条,但是我们只希望保留id最小的那条记录,因为学号和姓名均重复的只有id为1、6的记录,保留id为1的记录,那么验证一下查询的数据是否正确
1 -- 删除多余的重复记录(多个字段),只保留最小id的记录2 DELETE FROM student WHERE id IN (3 SELECT * FROM (4 SELECT id FROM student WHERE (stuno,stuname) -- 注意:此处一定要加括号,当成联合字段来处理5 IN (6 -- 查找学号和姓名均重复的学生信息7 SELECT stuno,stuname FROM student GROUP BY stuno,stuname HAVING COUNT(1) > 18 ) AND id NOT IN (9 -- 查询最小id的记录 10 SELECT MIN(id) FROM student GROUP BY stuno,stuname HAVING COUNT(1) > 1 11 ) 12 ) AS stu_repeat_copy 13 14 );
查询结果如下:
可以看出,id为6的记录已经被删除了,所以结果正确
警告:不能根据本表的查询结果来更新本表的数据
在其它的帖子中有看到如下写法来删除重复数据:
1 DELETE FROM student WHERE (stuno,stuname) -- 注意:此处一定要加括号,当成联合字段来处理 2 IN ( 3 -- 查找学号和姓名均重复的学生信息 4 SELECT stuno,stuname FROM student GROUP BY stuno,stuname HAVING COUNT(1) > 1 5 ) AND id NOT IN ( 6 -- 查询最小id的记录 7 SELECT MIN(id) FROM student GROUP BY stuno,stuname HAVING COUNT(1) > 1 8 );
会报如下错误:
[Err] 1093 - You can't specify target table 'student' for update in FROM clause
MySQL查询和删除重复记录相关推荐
- mysql删除重复文章标题_MySQL中查询、删除重复记录的方法大全
前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: 一.查找重复记录 1.查找全部重复记录 2.过滤重复记录( ...
- mysql删除重复的判断_MySQL中查询、删除重复记录一共有多少种方法?
前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as coun ...
- mysql去掉两个最高分_MySQL中查询、删除重复记录的方法大全
前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as coun ...
- mysql删除重复记录语句的方法 作者: 字体:[增加 减小] 类型:转载 时间:2010-06-21 我要评论 查询及删除重复记录的SQL语句,虽然有点乱,但内容还是不错的。 . .
mysql删除重复记录语句的方法 作者: 字体:[增加 减小] 类型:转载 时间:2010-06-21 我要评论 查询及删除重复记录的SQL语句,虽然有点乱,但内容还是不错的. 例如: id name ...
- MySQL的查询及删除重复记录
查询及删除重复记录的方法 (一) 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (sele ...
- 在 MySQL 数据库中删除重复记录的步骤
在 MySQL 数据库中删除重复记录的步骤 当我们在处理数据库中的数据时,有时候会出现重复记录的情况,这些重复记录会影响数据的正确性,需要将其删除.下面是在 MySQL 数据库中删除重复记录的步骤: ...
- [SQL]查询及删除重复记录的SQL语句
一:查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (sel ...
- MySQL中查询、删除重复记录的方法大全
查找所有重复标题的记录: select title,count(*) as count from user_table group by title having count>1; SELECT ...
- mysql查询删除重复记录查询_mysql怎么查询和删除重复记录
查找所有重复标题的记录: SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > ...
最新文章
- 【J2SE】java概述
- 深入理解Java Class文件格式
- 力扣100. 相同的树(JavaScript)
- centos7 如何重启web服务_如何重启web服务器
- 这台计算机没有连接到网络怎么办,如果计算机连接到路由器并且没有互联网,该怎么办...
- 38. 遵循按照值传递的原则来设计函数子类
- MySQL数据库优化的八种方式(总结)
- Mugeda(木疙瘩)H5案例课—接东西H5小游戏-岑远科-专题视频课程
- JavaWeb的学习(上)
- 移动流量转赠给好友_中国移动怎样转赠手机流量?月结流量用不完怎办
- openCV: 利用python和cv2绘出一个笑脸
- DATE_ADD() 函数使用
- 背景图片和颜色混合叠加多种混合模式
- 手机号码段简介以及最新手机号段归属地数据库(2018年7月1日)
- html下拉框动态增加成员,JavaScript实现左右下拉框动态增删示例
- 电脑安装android办公,办公室上班族的福利,在电脑上玩安卓系统
- java接入短信平台源码
- Android高级工程师面试实战,您会挂么?
- 创新是企业持续发展的动力
- 计算机专业成长计划书,计算机专业学习计划书
热门文章
- 在计算机科学中 算法这个术语是指什么,algorithm
- 金蝶K/3产品性能稳定性优化指导手册
- (附源码)ssm基于jsp高校选课系统 毕业设计 291627
- Proteus 8 Source Code 字体设置问题 光标于选中的字不对应
- RPC(远程过程调用)详解
- oppo SDK接入
- 【详解】位运算符:位逻辑运算符,位移运算符(<<左移,>>右移)
- 【网红流水线车间】“制造”李佳琦们的神秘组织,到底是怎么让网红火起来的?...
- qt base64加解密
- 儿童学计算机编程好处,儿童编程课学了有好处吗?4大优势家长要知道