mysql去除重复数据,只保留一条。
2017-12-07 14:48
351 查看
之前写过的爬虫里面,因为种种原因出现了一些重复的数据需要删除掉。然后发现mysql并没有直接的去重功能,要自己写。
查过许多博客之后发现可以这么写。
删除ppeople 重复的数据,然后重复数据中保留id最小的那一条数据。
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
但是执行之后发现mysql不支持这么写。报错信息为:
You can't specify target table 'news' for update in FROM clause
查阅之后发现,应当把查询结果通过中间表再查询一遍才行。
修改为:
deletefrom news
wherenewsurl in (select NewsUrl from (select NewsUrl from news group by newsurlhaving count(newsurl) > 1) a)
andnewsid not in ( select newsid from (select min(newsid) as newsid from news group by newsurl havingcount(newsurl )>1) b)
运行成功
查过许多博客之后发现可以这么写。
删除ppeople 重复的数据,然后重复数据中保留id最小的那一条数据。
delete from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
and rowid not in (select min(rowid) from people group by peopleId having count(peopleId )>1)
但是执行之后发现mysql不支持这么写。报错信息为:
You can't specify target table 'news' for update in FROM clause
查阅之后发现,应当把查询结果通过中间表再查询一遍才行。
修改为:
deletefrom news
wherenewsurl in (select NewsUrl from (select NewsUrl from news group by newsurlhaving count(newsurl) > 1) a)
andnewsid not in ( select newsid from (select min(newsid) as newsid from news group by newsurl havingcount(newsurl )>1) b)
运行成功
相关文章推荐
- mysql-删除重复的数据,重复的数据只保留一条
- mysql 删除重复数据只保留一条
- MySQL中删除重复数据只保留一条
- mysql删除重复数据只保留一条
- mysql 删除重复数据只保留一条
- mysql 创建唯一索引前 删除重复数据只保留id最小一条。
- mysql 删除重复数据只保留一条记录
- mysql中删除两条重复的数据,只保留一条
- mysql删除重复数据只保留一条
- mysql删除重复数据只保留id最大一条记录
- MySQL删除重复数据行,只保留一条
- MySQL中删除表中重复数据,只保留一条
- mysql 删除重复数据只保留一条
- mysql 删除表中重复的数据,只保留一条
- mysql 删除重复数据,只保留最新一条
- MySQL下删除重复记录只保留一条数据
- MySQL中删除重复数据只保留一条
- MySQL 表中多个字段重复只保留一条数据
- mysql 删除重复数据保留一条
- mysql删除重复数据只保留一条