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 ...
- Java实现文件查重去重
Java实现文件查重去重 前言 大概流程 代码 前言 网上下的一些去重软件不是太慢就是去的不够干净,故用Java编写一个使用 大概流程 ① 遍历选定的文件并按照文件长度分组 ② 根据md5二次过滤分组 ...
- 数据查重去重,数据匹配过程
帮助更多需要自动化解决工作的人们. 步骤:不完整,重复,错误,格式不规范数据 -> 数据清洗 -> 正确规范数据 -> 数据去重技术 -> 数据匹配. 使用过的一些相关软件,查 ...
- Python 计算MD5值 图片查重去重
MD5 MD5 即 Message-Digest Algorithm 5(信息-摘要算法5).摘要算法又称哈希算法.散列算法. 它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进 ...
- mysql 查重名现象_mysql查询重复数据【转】
表全部数据 ------------------- 1 查询people_no重复的记录 select * from people where people_no in (select people_ ...
- 高薪程序员面试题精讲系列83之MySQL如何查重和去重?如何分页?
一. 面试题及剖析 1. 今日面试题 MySQL如何查询重复记录? MySQL如何去除重复记录? 2. 题目剖析 数据库相关的面试题很多,而且也是我们面试时的重中之重,随便某一个知识点都可能会被拿出来 ...
- MySql数据库:数据查重、去重的实现
数据库的查重去重是java面试经常会被问到的问题,下面讲讲怎么实现这些,因为本人能力有限,所以只管实现,不考虑效率问题: 假设有一个表user,字段分别有id--nick_name--password ...
- python知网查重_用Python写了个检测抄袭/文章去重算法(nshash)
中国人有句话叫"天下文章一大抄",但是在正规场合下"抄"是要付出代价的,比如考试.写论文是不能抄的,一旦被发现后果相当严重.在互联网出现之前,"抄&q ...
- 短视频查重机制及去重方法
2020年,各大短视频很严厉的一年,如3月份开始,无论是抖音里的影视号大批量的提醒搬运或者封号,还是从油管搬运视频过来,不经过视频去重处理,都会收到提醒. 很多人说如今只能原创了,姑且先不说是否大家都 ...
最新文章
- 移动硬盘提示此卷不包含可识别的文件系统数据如何恢复
- 三. H.264简介
- ios 贝塞尔曲线 颜色填充_IOS 贝塞尔曲线(UIBezierPath)属性、方法整理
- oleread.php,PHP的垃圾回收机制详解
- How draw a stem -and -leaf amp; box-plot display by R.or Python
- LINUX :标准c库
- C# HttpRequest基础连接已经关闭: 接收时发生意外错误
- Java中WeakReference,SoftReference,PhantomReference和Strong Reference之间的区别
- [转]使用Navicat for Oracle工具连接oracle的
- mysql的DbUtils_Dbutils操作mysql
- Eclipse设置断点进行调试
- HPC在石油勘探行业正面临三大考验
- 良好的树结构设计会让开发更舒爽
- 关于 tp5 事务操作总结
- 百度文库免下载券下载的方法
- 石子合并,四边形不等式优化(Buy Candy,玲珑杯 Round#6 A lonlife 1066)
- 探索淘宝订单号生成方案
- 十几套IT培训视频教程免费下载,为你节省几万元培训费用
- CocoaPods制作第三方库,管理自己的私有库以及发布官方库(模块化与组件化)
- 35 行代码实现一个简单的 shell
热门文章
- CSS实现背景图片不规则的导航菜单
- 【模板】ACM Conference的Latex论文模板与说明
- ATTck 入口点 —— 水坑攻击
- java web应用程序开发框架
- linux系统部分装在根目录吗,我安装的红帽linux系统,怎么没有根目录
- 物理服务器怎么装linux,新手如何在物理机上部署红帽linux系统
- devm_ioremap_resource devm_ioremap 区别
- 首批最佳骑行路线揭晓
- 过孔为什么不能打焊盘上?我就想打,怎么办?
- 3.DesignForVias\1.AutoRoutingFirstSetp