来源:自学PHP网 时间:2020-09-14 15:43 作者:小飞侠 阅读:次
[导读] 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 数据查重、去重的资料请关注自学php网其它相关文章! |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com