删除数据库中重复数据

Posted tjpblog

tags:

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

数据完全一致的情况:

  #mysql不支持INTO

  Create table temp (Select DISTINCT * from student);
  DROP TABLE student;
  Create table student (Select * from temp);
  DROP TABLE temp;

  #其他数据库
  SELECT DISTINCT * INTO temp FROM student;
  DROP TABLE student;
  SELECT * INTO student FROM temp;
  DROP TABLE temp;

个别字段一致:

DELETE FROM student WHERE id in (SELECT id FROM (SELECT id FROM student where id not in(SELECT MIN(id) id from student GROUP BY `name`)) as s1);

解析:

因为MySQL不能对同一个表,查询的同时进行更新,所以很多同学都会觉得这个问题比较简单。

SELECT id FROM student where id not in(SELECT MIN(id) id from student GROUP BY `name`);

上面的sql是先查询出所有有效数据,然后通过not in() 的方式找出需要删除的id,最后对结果进行一次包装,起一个别名,然后就可以正常删除了。

技术图片

 

以上是关于删除数据库中重复数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL中表里面怎么删除重复数据

怎么样删除SQL SERVER 数据库中重复的数据

教你删除Oracle数据库中重复没用的数据

数据库怎样删除多条重复数据保留一条?

sql数据库中出现重复行数据,如何删除这些重复记录?

mysql删除重复数据,保留一条