MYSQL数据库去除重复记录方法 一句话代码实战
MYSQL数据库操作的过程中,经常会遇到需要去除数据库中重复内容的操作,如果一条条手动操作,那将很费时费力,其实有很简单的MYSQL语句可以实现直接去重的操作,详细操作方法如下:
一、有主键去重
1、单字段重复
table ab
我们先看看拆分的操作步骤
查询重复记录(一条)
select aid from ab group by aid having count(*)>1
结果:
查询重复记录(全部)
select * from ab t where t.aid in(select aid from ab group by aid having count(*)>1);
查询结构:
删除重复记录保留一条
delete from ab where aid in( select t.aid from( select aid from ab group by aid having count(*)>1 ) t )and id not in( select t.id from( select max(id) as id from ab group by aid having count(*)>1 ) t )
运行,去重成功!
2、多字段重复
table ab
查询重复记录(一条)
select aid,bid from ab group by aid,bid having count(*)>1
查询结果:
查询重复记录(全部)
select * from ab t where(t.aid,t.bid)in(select aid,bid from ab group by aid,bid having count(*)>1);
查询结果:
删除重复记录保留一条
delete from ab where (aid,bid) in ( select t.aid,t.bid from ( select aid,bid from ab group by aid,bid having count(*)>1 ) t ) and id not in ( select t.id from ( select max(id) as id from ab group by aid,bid having count(*)>1 ) t )
去重成功!
二、无主键去重
单字段、多字段
table ab
删除重复记录保留一条
--建临时表插入去重数据 create table ab_temp (select * from ab group by aid,bid having count(*)>1); --删除重复数据 delete from ab where (aid,bid) in ( select t.aid,t.bid from ( select aid,bid from ab group by aid,bid having count(*)>1 ) t ); --插入去重数据 insert into ab select * from ab_temp; --删除临时表 drop table ab_temp;
去重成功!
顶(0)
踩(0)
- 最新评论