mysql数据库重复记录过滤删除解决

删除重复记录mysql

#一、查询重复记录sql

SELECT id,COUNT(*) AS total,songurl  FROM HFMedia.HFSongs GROUP BY songurl HAVING total > 1  ORDER BY total DESC测试

 

#二、创建临时表
CREATE TEMPORARY TABLE  tbl_hfsongs( id INT(10) ,number INT(5), url VARCHAR(255) , KEY pk(id)  ) ENGINE=MEMORY;url

#三、查数据插入临时表table

INSERT INTO tbl_hfsongs  SELECT id,COUNT(*) AS total,songurl  FROM HFMedia.HFSongs GROUP BY songurl HAVING total > 1  ORDER BY total DESC  ;数据

 

#四、测试生产的sqls脚本

SELECT CONCAT('delete from FROM HFMedia.HFSongs where songurl = \'',uniq,'\' and  id != ',id) FROM tbl_hfsongs  LIMIT 2;

#五、生成执行脚本、
SELECT CONCAT('delete from FROM HFMedia.HFSongs where songurl = \'',uniq,'\' and  id != ',id,';') INTO OUTFILE '/tmp/delect_sb.sql' FROM tbl_hfsongs ;查询

 

#六、执行脚本tab

mysql>source  /tmp/delect_sb.sql di

 

#七、测试清理重复数据后状况

SELECT id,COUNT(*) AS total,songurl  FROM HFMedia.HFSongs GROUP BY songurl HAVING total > 1  ORDER BY total DESC

 

#8,手动释放临时表

mysql>truncate tbl_hfsongs;

mysql>drop table tbl_hfsongs;

相关文章
相关标签/搜索