mysql对表中数据根据某一字段去重

Posted wxy0126

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql对表中数据根据某一字段去重相关的知识,希望对你有一定的参考价值。

要删除重复的记录,就要先查出重复的记录,这个很容易做到

select * from 表名 group by 根据哪一个字段(简称字段) having count(字段) > 1

注意:这是查出所有重复记录的第一条记录,需要保留,因此需要添加查询条件,查出所有的重复记录

select id,expect from cqssc where expect in (select expect from cqssc group by expect having count(expect)>1) 

and id not in(select min(id) from cqssc group by expect having count(expect)>1)

技术图片

 

然后

delete from cqssc where id in (select id from (select id from cqssc where expect in 

(select expect from cqssc group by expect having count(expect)>1) and id not in

(select min(id) from cqssc group by expect having count(expect)>1)) as tmpresult)

技术图片

删除成功,最后再查询一下看是否还有重复记录

技术图片

 

以上是关于mysql对表中数据根据某一字段去重的主要内容,如果未能解决你的问题,请参考以下文章

sql只根据某一字段去重,并保留其他字段

MySQL基础语法之创建表和对表中数据增删改的语法

sql语句去重

SQL中查询多个字段时,GROUP BY 要怎么使用?

mysql,sqlserver数据库去重

mysql中对表操作----为所有列插入数据