mysql删除重复的判断_MySQL中查询、删除重复记录一共有多少种方法?
前言
本文主要给大家介绍了关于MySQL中查询、删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍:
查找所有重复标题的记录:
select title,count(*) as count from user_table group by title having count>1;
SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC
一、查找重复记录
1、查找全部重复记录
SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC
2、过滤重复记录(只显示一条)
Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title)
注:此处显示ID最大一条记录
二、删除重复记录
1、删除全部重复记录(慎用)
Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
2、保留一条(这个应该是大多数人所需要的 _)
Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)
注:此处保留ID最大一条记录
三、举例
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
3、查找表中多余的重复记录(多个字段)
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
四、补充
有两个以上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
1、对于第一种重复,比较容易解决,使用
select distinct * from tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。
2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下
假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助
mysql删除重复的判断_MySQL中查询、删除重复记录一共有多少种方法?相关推荐
- java中批次号_在一个批次中插入多笔记录的几种方法
插入数据库方法很多,下面Insus.NET列举几种方法,看看你常用的是哪一种: 创建一张表: CREATE TABLE [dbo].[Network_Info] ( [ID] INT NOT NULL ...
- 从19本书中选取五本,并且要求这五本互相不相邻,一共有多少种方法?
题目: 从19本书中选取五本,并且要求这五本互相不相邻,一共有多少种方法? 解决方案一:挡板问题--插空法 假设当前在书架上已经放好14本书,那么只需要再把剩下五本书插入这些空中即可. 14本书有15 ...
- mysql删除重复文章标题_MySQL中查询、删除重复记录的方法大全
前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: 一.查找重复记录 1.查找全部重复记录 2.过滤重复记录( ...
- mysql去掉两个最高分_MySQL中查询、删除重复记录的方法大全
前言 本文主要给大家介绍了关于MySQL中查询.删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as coun ...
- 设置mysql字段不能自增_MySQL中不能创建自增字段的解决方法
原因分析: 引起MySQL不能创建自动增加的字段的原因是在MySQL5.0.2版本中的The Server SQL Mode 中新加了几种 sql_mode,并且在sql的my.ini文件中的sql- ...
- 判断字符串中是否包含指定字符的N种方法对比
方法一 var str ="abc"; if(str.indexOf("bc")!=-1){// !=-1含有 ==-1不含有 } 方法二 var str =& ...
- MySQL中查询字段为空或者为null方法
MySQL中查询字段为空或者为null方法 判断为null select * from table where column is null; 不为null: select * from table ...
- js 判断数组中是否有重复值两种方法
判断数组中是否有重复的值,重复则提示优先级重复 第一种方法 推荐 // 以数组值为键,持续向一个对象里面加值,// 如果在加值之前就发现这个属性在对象中已经存在,那么他就是重复的 function i ...
- (C语言)判断数组中是否有重复值
给一个数组,判断数组里面是否有重复的数,如果有返回1,如果没有返回0 现在写的是蛮力法,时间效率为O(n^2); 目前想到的更好的办法是先排序,然后比较相邻元素是否有相等的.这个的时间效率就取决于排序 ...
最新文章
- Windows phone 应用开发[12]-Pex 构建自动化白盒测试[下]
- 8个你应该了解的正则表达式
- Swif语法基础 要点归纳(一)
- Android给TextView和EditText等控件设置透明背景、圆角边框
- superset 时区问题Timestamp subtraction must have the same timezones or no timezones
- eclipse 创建 maven web 项目教程
- NET 提供了执行异步操作的三种模式
- [Open Source]DrawKit - A cocoa framework for drawing
- uint8_t范围_uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结
- 计算机03年word做母亲节贺卡,word2007怎样制作电子母亲节贺卡
- php ci CodeIgniter框架图片缩略图处理类优化 缩放到固定大小
- Java基础9----运算符2(关系,逻辑运算符)
- 【ROM制作工具】如何三分钟学会制作手机线刷包?一键制作线刷包详细教程
- Python每日一练-----整数转罗马数字
- 蓝桥杯STM32G431——RTC实时时钟
- 数据结构 笔记:图的遍历(DFS)
- 尚硅谷JavaScript基础实战丨JS入门到精通全套完整版 P15
- 华为matebook重装win11系统后,蓝牙失效无法使用,重新安装蓝牙驱动
- mmdvm 接收_派之星和MMDVM热点常见问题
- 什么是流量裂变系统?如何设计流量裂变机制?
热门文章
- Android5.1修改以太网MAC地址(SElinux)
- Android关于AndroidManifest.xml详细分析
- 不同工作组能访问吗_“辣椒”的辣味从哪里来?有方法能测量不同辣椒的辣度吗?...
- 关于Angular中使用HTML的select和option标签的一些问题
- [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具
- c++基础_特殊回文数
- Lambda表达式常用代码示例
- “双十一”即来 电商如何开启安全大战?
- STM8不用手动复位进入自带Bootloader方法(串口下载)
- Exchange server 2003迁移到2010之升级默认地址簿及地址策略