码迷,mamicode.com
首页 > 数据库 > 详细

删除数据库中重复数据

时间:2019-10-15 19:00:33      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:完全   nbsp   inf   drop   info   HERE   别名   问题   很多   

数据完全一致的情况:

  #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,最后对结果进行一次包装,起一个别名,然后就可以正常删除了。

技术图片

 

删除数据库中重复数据

标签:完全   nbsp   inf   drop   info   HERE   别名   问题   很多   

原文地址:https://www.cnblogs.com/tjpblog/p/11679439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!