mysql 删除重复记录

mysql 删除重复记录

月光魔力鸭

2019-09-29 08:35 阅读 812 喜欢 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


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
虽说docker已经大名鼎鼎,但在之前一直都未上手使用过,即便是前一阵子想挂下京东的京豆(使用docker)也给耽搁了,一直的感觉就是这货应该跟vm没啥区别吧,应该就是更方便更好用更适合开发者。
作为程序员或多或少会用到这部分,但是又不常用,这里简单记录下大神给讲解的小技巧。
最近发现有部分同学在网站上面无法支付,限于无法知道他们的具体情况,这里简单做几个猜测。
傅里叶啊傅里叶 要掐死你啦..
构建tomcat镜像后发现项目中参数名字为乱码。
最近居家的时候看电影发现啥啥都不能看,不是这个应用没会员,就是那个应用没资源.. 愁煞我,想起之前有个NAS可以解决,但是自己又没有对应系统,只有一个linux,决定研究一下。
如果您由于各种各样的原因,不幸丢失了数据、想恢复数据,您在互联网上搜索解决办法,会发现,DiskGenius这款软件是排名第一的解决方案