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