mysql 删除重复记录

mysql 删除重复记录

月光魔力鸭

2019-09-29 08:35 阅读 135 喜欢 0 mysql 删除重复记录

这不是之前做了一个磁力小站么.. 发现之前好多记录都是重复的(不要问我怎么发现的),就删除下,感觉不难,但总是写不对.. 这里纯粹记下sql.

查询重复记录

select infohash from demo_magnet group by infohash having count(1) > 1;

删除重复记录(所有)

//请注意:这里是全部删除,不会保留哈,一定要看仔细了... 
delete from demo_magnet where infohash in (
    select infohash from (
        select infohash from demo_magnet group by infohash having count(1) > 1
    ) t
) ;
//注意哈,要带t(作为一个表)

保留一条记录

delete from demo_magnet where infohash in (
    select infohash from (
        select infohash from demo_magnet group by infohash having count(1) > 1
    ) t
) 
and id not in (
    select dt.minid from (
        select min(id) as minid from demo_magnet group by infohash having count(1) > 1
    ) dt
)

这里我的ID 是自增的可以使用这个。如果没有ID可以来判定怎么办?

用 _rowid 和 oracle 的 rowid 类似

delete from demo_magnet where infohash in (
    select infohash from (
        select infohash from demo_magnet group by infohash having count(1) > 1
    ) t
) 
and _rowid not in (
    select dt.minid from (
        select min(_rowid) as minid from demo_magnet group by infohash having count(1) > 1
    ) dt
)

以上。

转载请注明出处: https://chrunlee.cn/article/mysql-delete-repeat-record.html


感谢支持!

赞赏支持
提交评论
评论信息(请文明评论)
暂无评论,快来快来写想法...
推荐
简单记录下openssl 编译x64 以及在visual studio 中附加openssl库的过程,过程很简单,不过不是我的专业,所以比较耗时.. 很多小细节的问题。
今天用github登录自己网站的时候,竟然意外的失败了,查了下日志,发现报错:Request forbidden by administrative rules 。
如果有台能翻墙的服务器,那么我们就可以自己做一个代理,这样本地就可以科学上网啦..
Access denied for user 'root'@'localhost' (using password: YES) 碰到一个错误,不知道怎么动了权限导致外网,本地都登录不进去了。
关于自动签到,之前也有过,感觉写过好多次了,有可能也重复了,不过这次是通过puppeteer来实现的,相对于之前的phantomjs 或 casperjs 或 request 等最起码会更简单些,也不用安装这么多稀奇古怪的东西。
作为一名前端开发人员来说,有一个比较好的工具会提高开发效率,不管是调试还是书写,这里推荐一个快速书写的利器:Emmet
对于视频,音频等的处理,使用ffmpeg还是很方便的,但是由于命令繁多,又不好记忆,这里整理下个人常用的几个命令,后续方便查找。
仅做记录。