查询及删除重复记录的方法
(一)
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有一个记录
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and min(id) not in (select id 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)

(二)
比方说
在A表中存在一个字段“name”,
而且不同记录之间的“name”值有可能会相同,
现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项;
Select Name,Count(*) From A Group By Name Having Count(*) > 1

如果还查性别也相同大则如下:
Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1

(三)
方法一

declare @max integer,@id integer

declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1

open cur_rows

fetch cur_rows into @id,@max

while @@fetch_status=0

begin

select @max = @max -1

set rowcount @max

delete from 表名 where 主字段 = @id

fetch cur_rows into @id,@max

end

close cur_rows

set rowcount 0

出处: 马丁博客[http://www.blags.org/]

转载于:https://www.cnblogs.com/camelroyu/p/5639405.html

MySQL查询表内重复记录相关推荐

  1. [转]MySQL查询表内重复记录

    为什么80%的码农都做不了架构师?>>>    查询及删除重复记录的方法 (一) 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * fr ...

  2. mysql查询表中重复记录

    mysql查询表中某个字段值重复的记录, 也就是说,该字段值出现的个数是>=2,所以可以对该字段进行分组,然后对字段count计数,再筛选出>=2的count的值即可,具体实现如下: se ...

  3. mysql查询表里面重复的数据_mysql查询表里的重复数据方法

    这篇文章主要介绍了mysql查询表里的重复数据方法,需要的朋友可以参考下 INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),( ...

  4. Database之SQLSever:SQL命令实现查询之多表查询、嵌套查询、分页复杂查询,删除表内重复记录数据、连接(join、left join和right join简介及其区别)等案例之详细攻略

    Database之SQLSever:SQL命令实现查询之多表查询.嵌套查询.分页复杂查询,删除表内重复记录数据.连接(join.left join和right join简介及其区别)等案例之详细攻略 ...

  5. 通过Mybatis获取mysql表中重复记录的方法

    输入条件:函数F返回的某表A的id列表 (id列表中的数据可能带有重复) 目标:依据该i列表 id 的顺序获取相应的记录列表. 方法:在mysql本身的语句中未发现有好的方法,即使用 in 语句也只能 ...

  6. 解决Mysql中删除重复记录的问题

    题记 本文主要介绍Mysql数据库表中,如何删除相同索引值.更新日期较早的记录行. 1.相同记录的由来 以Mysql为例,根据表的设计原则,表中不可能存在两条完全相同的记录. 第一范式(1NF):字段 ...

  7. mysql存储过程删除重复记录

    为什么80%的码农都做不了架构师?>>>    之前在写删除数据库重复记录的时候没有用存储过程代码如下: 表(book)字段 (id   ,    b_name,   b_descr ...

  8. MySQL之——查询重复记录、删除重复记录方法大全

    查找所有重复标题的记录: SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) >  ...

  9. mysql查询删除重复记录查询_mysql怎么查询和删除重复记录

    查找所有重复标题的记录: SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > ...

最新文章

  1. jQuery 加法计算 使用+号即强转类型
  2. Tomcat配置虚拟路径访问容器外的硬盘资源
  3. Windows Phone 开发环境的搭建
  4. html标签名缩写与英文全称对照表
  5. 苹果电脑怎么删除软件_误格式化,删除文件怎么恢复?3款最好用的数据恢复软件推荐...
  6. 【工具】Xshell安装注册以及简单属性配置
  7. Java并发——线程中断学习
  8. max232管脚讲解 单片机与PC通讯
  9. Linux内核精选文章向读者汇报 | 相遇Linux
  10. html无序列表文字换行,ppwjs之bootstrap文字排版:无序列表项不换行
  11. tensorflow学习笔记(3):使用tf.data API导入数据
  12. SharedPreferences小探
  13. 利用python爬取飞猪信息_Python实战:飞猪IP池爬虫(8)
  14. 皮尔森相关系数与方差膨胀因子介绍及关系 附python代码
  15. Android基于Ymodem协议升级嵌入式MCU主控
  16. Eclipse中的Unicode编码如何转为中文?
  17. Foxmail是否可以隐藏文件夹?【网易企业邮箱申请】
  18. H5 下载PDF文件
  19. 那些很棒的 blog and site 优秀的博客和网站推荐
  20. 【电气安全】关于医疗专用隔离电源系统在医院配电系统中的应用

热门文章

  1. 关于格雷码的规律、转换
  2. mysql od函数_Mysql数学函数不求人
  3. hbuilder打包的app如何设置自动清理缓存_手机空间不足,这些“隐形”文件如何找到删除?...
  4. boostrap 鼠标滚轮滑动图片_BootStrap 轮播插件(carousel)支持左右手势滑动的方法(三种)...
  5. 线程池中submit()方法与execute()方法的区别
  6. 接口文件也是.java结尾吗
  7. 009_InputNumber计数器
  8. 006_Gson定制型适配器
  9. 035_jQuery Ajax的ajaxSetup方法
  10. python的celery的面试_python 面试