mysql 查询及 删除表中重复数据
1 2 3 4 5 6 7 8 | CREATE TABLE `test` ( `id` INT(20) NOT NULL AUTO_INCREMENT, `name` VARCHAR(20) NULL DEFAULT NULL, `age` INT(5) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) COLLATE= 'utf8_general_ci' ENGINE=InnoDB |
查询出所有重复的记录 ,删除所有 select a.* 换成delete
1 2 3 4 | select a.* from test a join ( select name , count (*) from test group by name having count (*)> 1 ) b on a. name = b. name ; |
查询不重复的记录,和重复记录里最后插入的记录
1 | select * from test a where a.id = ( select max(id) from test b where a.name = b.name); |
查询不重复的记录。和重复记录里,最先插入的记录
1 | select * from test a where a.id = ( select min (id) from test b where a. name = b. name ); |
查询出重复记录里,第一条重复记录以外的所有重复记录 删除的话select * 换成delete
1 | select * from test a where a.id != ( select min (id) from test b where a. name = b. name ); |
查询出重复记录里,最后一条重复记录以外所有重复的记录 ,删除的话select * 换成delete
1 | select * from test a where a.id != ( select max (id) from test b where a. name = b. name ); |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步