MySQL 数据查重、去重的实现语句
有一个表user,字段分别有id、nick_name、password、email、phone。
一、单字段(nick_name)
查出所有有重复记录的所有记录
select * from user where nick_name in (select nick_name from user group by nick_name having count(nick_name)>1);
查出有重复记录的各个记录组中id最大的记录
select * from user where id in (select max(id) from user group by nick_name having count(nick_name)>1);
查出多余的记录,不查出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);
删除多余的重复记录,只保留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)
查出所有有重复记录的记录
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);
查出有重复记录的各个记录组中id最大的记录
select * from user where id in (select max(id) from user group by nick_name,password where having count(nick_name)>1);
查出各个重复记录组中多余的记录数据,不查出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);
删除多余的重复记录,只保留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 数据查重、去重的资料请关注好吧啦网其它相关文章!
相关文章:
1. MySQL分区的优点2. Oracle灾难防护的关键技术3. 传甲骨文将增加对MySQL投资与微软竞争4. mysql启动时报错 ERROR! Manager of pid-file quit without5. Mysql入门系列:MYSQL服务器内部安全性-安全数据目录访问6. Microsoft Office Access设置索引的方法7. MySQL中 concat函数的使用8. MySQL全文搜索之布尔搜索9. SQL2000管理SQL7服务器出现TIMEOUT问题的解决10. 启动MYSQL出错 Manager of pid-file quit without updating file.

网公网安备