mysql 删除重复记录

mysql 删除重复记录

月光魔力鸭

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


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
构建tomcat镜像后发现项目中参数名字为乱码。
在写前端页面的时候,反复操作的是切换,写完代码,切换到浏览器,然后刷新,查看效果,不合适,然后再切换回编辑器,然后修改,这样反复操作。livereload 释放了双手,自动刷新(尤其是双屏的同学特别友好)
最近一直在了解关于个人支付的问题。由于之前一直想实现个人支付,但是目前微信和支付宝的支付接口都需要企业或个体户资质,导致没办法实现,无奈只能走向这个道路。 说是免签,实际上就是拿到收款金额来做些事情。
$ openssl x509 -in ./1_wechatdat.com_bundle.crt -out ./1_wechatdat.com_bundle.pem
记录下部署php项目的时候的经过,查了很多资料,最后才定出的这个,中间些许问题可能已经记不清楚了,趁着时间步长,赶紧回忆一下。
傅里叶啊傅里叶 要掐死你啦..
平时聊天或写文章的时候,一直使用QQ拼音,经常会在打字的时候蹦出表情来,昨天突然就想把这沙雕表情插入到我的文章里面.. 还可以稍显生动一些..