MySQL 数据查重、去重的解决办法
2022-11-12 09:15:47
内容摘要
这篇文章主要为大家详细介绍了MySQL 数据查重、去重的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!
有一个表user,字段
文章正文
这篇文章主要为大家详细介绍了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);
MySQL 数据查重、去重的实现语句
查出有重复记录的各个记录组中id最大的记录
代码如下:
select * from user where id in (select max(id) from user group by nick_name having count(nick_name)>1);
MySQL 数据查重、去重的实现语句
查出多余的记录,不查出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);
MySQL 数据查重、去重的实现语句
删除多余的重复记录,只保留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);
MySQL 数据查重、去重的实现语句
二、多字段(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);
MySQL 数据查重、去重的实现语句
查出有重复记录的各个记录组中id最大的记录
代码如下:
select * from user where id in (select max(id) from user group by nick_name,password where having count(nick_name)>1);
MySQL 数据查重、去重的实现语句
查出各个重复记录组中多余的记录数据,不查出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);
MySQL 数据查重、去重的实现语句
删除多余的重复记录,只保留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 数据查重、去重的实现语句的详细内容,更多关于MySQL 数据查重、去重的资料请关注512笔记其它相关文章!
注:关于MySQL 数据查重、去重的简单示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释