查找删除mysql数据表中重复记录

时间:2021-06-11 22:21:45

mysql数据库中的数据越来越多,当然排除不了重复的数据,在维护数据的时候突然想到要把多余的数据给删减掉,剩下有价值的数据。

一. 方法 1

以下sql语句可以实现查找出一个表中的所有重复的记录.
select user_name,count(*) as count from user_table group by user_name having count>1;

参数说明:

user_name为要查找的重复字段.

count用来判断大于一的才是重复的.

user_table为要查找的表名.

group by用来分组

having用来过滤.

把参数换成自己数据表的相应字段参数,可以先在Phpmyadmin里面或者Navicat里面去运行,看看有哪些数据重复了,然后在数据库里面删除掉,也可以直接将SQL语句放到后台读取新闻的页面里面读取出来,完善成查询重复数据的列表,有重复的可以直接删除。

实例:

delete from sys_user  
where USER_NAME IN(select USER_NAME from ( SELECT USER_NAME FROM sys_user group by `USER_NAME`  having  count(1) > 1) as temtable )



二、方法 2


#查询所有数据行数 sum
select count(1) from table
#查询去重后数据行数u
select distinct * from table
#插入去重后数据
insert into table select distinct * from table
#删除原有数据
delete from table limit 0,sum