mysql中如何查询重复数据

最近在优化推广的部分功能,通过接口采集到数据后发现数据直接入库,但是发现有些重复的数据没有做处理,目前是通过Mysql的自增id来实现索引,但是插入数据的时候是通过数据自带的pid插入到另一个字段,pid插入并未做唯一校验,正常情况下是需要在插入前做唯一检验的,可以在插入前查询某条数据之前是否已经在数据库中存在,也可以通过定时任务定时删除重复的数据。

在网上搜索mysql查询重复数据的sql如下:

SELECT * FROM tbk WHERE id IN (SELECT id FROM tbk GROUP BY id HAVING COUNT(id) > 1)

查询到数据后就需要执行删除操作:

DELETE from tbk where id in (select id from (SELECT * FROM tbk WHERE id IN (SELECT id FROM tbk GROUP BY id HAVING COUNT(id) > 1)) as repeat_cord)

需要注意的是需要将查询到的重复数据另存为一个字段,否则会报错。

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):