[转]MySQL查询表内重复记录
为什么80%的码农都做不了架构师?>>>
查询及删除重复记录的方法
(一)
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
转载于:https://my.oschina.net/comguo/blog/139376
[转]MySQL查询表内重复记录相关推荐
- MySQL查询表内重复记录
查询及删除重复记录的方法 (一) 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (sele ...
- mysql查询表中重复记录
mysql查询表中某个字段值重复的记录, 也就是说,该字段值出现的个数是>=2,所以可以对该字段进行分组,然后对字段count计数,再筛选出>=2的count的值即可,具体实现如下: se ...
- mysql查询表里面重复的数据_mysql查询表里的重复数据方法
这篇文章主要介绍了mysql查询表里的重复数据方法,需要的朋友可以参考下 INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),( ...
- Database之SQLSever:SQL命令实现查询之多表查询、嵌套查询、分页复杂查询,删除表内重复记录数据、连接(join、left join和right join简介及其区别)等案例之详细攻略
Database之SQLSever:SQL命令实现查询之多表查询.嵌套查询.分页复杂查询,删除表内重复记录数据.连接(join.left join和right join简介及其区别)等案例之详细攻略 ...
- 通过Mybatis获取mysql表中重复记录的方法
输入条件:函数F返回的某表A的id列表 (id列表中的数据可能带有重复) 目标:依据该i列表 id 的顺序获取相应的记录列表. 方法:在mysql本身的语句中未发现有好的方法,即使用 in 语句也只能 ...
- 解决Mysql中删除重复记录的问题
题记 本文主要介绍Mysql数据库表中,如何删除相同索引值.更新日期较早的记录行. 1.相同记录的由来 以Mysql为例,根据表的设计原则,表中不可能存在两条完全相同的记录. 第一范式(1NF):字段 ...
- mysql存储过程删除重复记录
为什么80%的码农都做不了架构师?>>> 之前在写删除数据库重复记录的时候没有用存储过程代码如下: 表(book)字段 (id , b_name, b_descr ...
- MySQL之——查询重复记录、删除重复记录方法大全
查找所有重复标题的记录: SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > ...
- mysql查询删除重复记录查询_mysql怎么查询和删除重复记录
查找所有重复标题的记录: SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > ...
最新文章
- spring事务模板使用
- python 内置函数 eval()函数 (用来执行一个字符串表达式,并返回表达式的值)
- python tkinter计算器实例_python小实例——tkinter实战(计算器)
- 开源php面板,宝塔面板nginx安装终于搞定了
- Android 获取包名,版本信息及VersionName名称
- oracle 11g r2 rac中节点时间不同步,Oracle11gR2安装RAC错误之--时钟不同步
- vs2019新建android生成app,VS2017 VS2019创建离线安装包
- 线性时间选择算法(Java)
- 懒羊羊的作业:看过国产动画片的同学都知道,懒羊羊是一只非常懒的羊,整天除了吃就是睡,根本没有时间做作业。明天就是周一了,村长慢羊羊留的作业:把 n 个整数从大到小排序,它还没开始写...
- 显卡性能比较 GPU common sense
- python sql语句换行_python一行sql太长折成多行并且有多个参数的方法
- 计算机教师专业环境,信息技术环境对教师专业发展的新要求
- 太阳能心率智能骑行仪(STM32)
- HTML 信息隐藏与提取
- unity技美27——优化项目内美术3D,2D等资源,详解unity打包体的潜规则与案例
- Linux·内核源码简单分析
- OWA动态密码短信认证方案,解决outlook邮件双因子认证问题
- 前任写的代码,真是辣鸡…
- Abracadabra
- OKL4 Microvisor