MySql数据查重、去重的实现
假设有一个表user,字段分别有id–nick_name–password–email–phone,分情况如下(注意删除多余记录时要创建临时表,不然会报错):
一、单字段(nick_name)
1、查出所有有重复记录的所有记录
select * from user where nick_name in(select nick_name from user group by nick_name having count(nick_name)>1);
2、查出有重复记录的各个记录组中id最大的记录
select * from user where id in (select max(id) from user group by nick_name having count(nick_name)>1);
3、查出多余的记录,不查出id最小的记录
select * from user where nick_name in(select nick_name from user group by nick_name having count(nick_name)>1)and id not in (select min(id) from user group by nick_name having count(nick_name)>1);
4、删除多余的重复记录,只保留id最小的记录
delete from user where nick_name in(select nick_name from(select nick_name from user group by nick_name having count(nick_name)>1) as tmp1)and id not in (select id from (select min(id) from user group by nick_name having count(nick_name)>1) as tmp2);
二、多字段(nick_name,password)
1、查出所有有重复记录的记录
select * from user where (nick_name,password) in(select nick_name,password from user group by nick_name,password where having count(nick_name)>1);
2、查出有重复记录的各个记录组中id最大的记录
select * from user where id in(select max(id) from user group by nick_name,password where having count(nick_name)>1);
3、查出各个重复记录组中多余的记录数据,不查出id最小的一条
select * from user where (nick_name,password) in(select nick_name,password from user group by nick_name,password having count(nick_name)>1)and id not in(select min(id) from user group by nick_name,password having count(nick_name)>1);
4、删除多余的重复记录,只保留id最小的记录
delete from user where (nick_name,password) in(select nick_name,password from(select nick_name,password from user group by nick_name,password having count(nick_name)>1) as tmp1)and id not in(select id from(select min(id) id from user group by nick_name,password having count(nick_name)>1) as tmp2);
关注我的技术公众号《漫谈人工智能》,每天推送优质文章
MySql数据查重、去重的实现相关推荐
- mysql添加用户查重的方法_mysql 开发技巧之JOIN 更新和数据查重/去重
主要涉及:JOIN .JOIN 更新.GROUP BY HAVING 数据查重/去重 1 INNER JOIN.LEFT JOIN.RIGHT JOIN.FULL JOIN(MySQL 不支持).CR ...
- 数据查重去重,数据匹配过程
帮助更多需要自动化解决工作的人们. 步骤:不完整,重复,错误,格式不规范数据 -> 数据清洗 -> 正确规范数据 -> 数据去重技术 -> 数据匹配. 使用过的一些相关软件,查 ...
- MySql数据库:数据查重、去重的实现
数据库的查重去重是java面试经常会被问到的问题,下面讲讲怎么实现这些,因为本人能力有限,所以只管实现,不考虑效率问题: 假设有一个表user,字段分别有id--nick_name--password ...
- Excel数据查重小技巧
Excel数据查重小技巧 方法一 1.选中要查重的一列(例如:A1) 2.点击:条件格式->突出显示单元格规则->重复值-确定 3.重复的数据就被标记出来了 方法二 1.选中要查询的数据列 ...
- java导入Excel中数据查重的方法
今天查数据库数据的时候发现一个问题,明明添加了数据库查重的方法,如果导入文件中存在和数据库相同值的时候会提示并拒绝提交,但数据库还是出现了重复字段,一开始有点纳闷,后来发现原来是因为一个excel文件 ...
- 555-大数据查重-位图算法
大数据查重-位图算法 位:内存管理的最小单位是字节,一个字节是8个位. 有1亿个整数,最大值不超过1亿,问都有哪些元素重复了?谁是第一个重复的? 内存限制100M 1亿 = 100M 如果是放到哈希表 ...
- Java实现文件查重去重
Java实现文件查重去重 前言 大概流程 代码 前言 网上下的一些去重软件不是太慢就是去的不够干净,故用Java编写一个使用 大概流程 ① 遍历选定的文件并按照文件长度分组 ② 根据md5二次过滤分组 ...
- 高薪程序员面试题精讲系列83之MySQL如何查重和去重?如何分页?
一. 面试题及剖析 1. 今日面试题 MySQL如何查询重复记录? MySQL如何去除重复记录? 2. 题目剖析 数据库相关的面试题很多,而且也是我们面试时的重中之重,随便某一个知识点都可能会被拿出来 ...
- excel两列数据查重
=IFERROR(VLOOKUP(B1,A:A,1,0),"") 查重前需查看被查数据前是否有空格 影响查重结果 另一种简单方法 excel -- 开始 -- 条件格式 -- 新建 ...
最新文章
- IIS 6.0安全增强
- javascript宿主对象之window.history
- view bitmap 截图
- webpack打包问题
- eas库存状态调整单不能反审核_把握 商品 周转,做好 动态 库存 管理
- python调用通达信公式_python读取通达信公式结果
- springboot+vue解决跨域问题
- Jenkins——Jenkins+harbor+gitlab(git) 部署maven项目
- LWIP应用开发|DNS域名解析
- C++学习日记——头文件的编写
- [INSTALL_FAILED_ALREADY_EXISTS]
- android 获取AndroidManifest.xml中的meta-data元素
- 安卓统一推送联盟 10 月 16 日正式成立
- 【小程序】小程序托管平台的功能展望与想法
- wux tab 颜色扩展
- 中关村科技企业融资缺口700亿 商业银行垂涎
- min capacitance 违例
- 奇瑞小蚂蚁年轻时尚生活的最爱
- java计算机毕业设计酒店订房系统源程序+mysql+系统+lw文档+远程调试
- 一款大功率6A 深度PWM调光的降压恒流驱动工作原理