刪除數據庫中重復數據


數據完全一致的情況:

  #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,最后對結果進行一次包裝,起一個別名,然后就可以正常刪除了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM