【常用方法推薦】如何刪除MySQL的重複資料?

老男孩IT教育機構發表於2022-10-26

  在使用資料庫時,出現重複資料是常有的情況,但有些情況是允許資料重複的,而有些情況是不允許的,當出現不允許的情況,我們就需要對重複資料進行刪除處理。那麼如何刪除MySQL的重複資料?刪除重複資料的方法有很多種,本文為大家介紹兩種最常見的方法。

  方法一:防止表中出現重複資料

  當表中未新增資料時,可以在MySQL資料表中設定指定的欄位為PRIMARY KEY(主鍵) 或者UNIQUE(唯一)索引來保證資料的唯一性。

  例如在學生資訊表中學號no不允許重複,需設定學號no為主鍵,且預設值不能為NULL。

  CREATE TABLE student

  (

  no CHAR(12) NOT NULL,

  name CHAR(20),

  sex CHAR(10),

  PRIMARY KEY (no)

  );

  方法二:過濾刪除重複值

  對於資料表中原有的資料,想要去除重複資料需要經過重複資料查詢、過濾以及刪除等步驟。

  1. 統計重複資料

  mysql> SELECT COUNT(*) as repetitions,no

  -> FROM student

  -> GROUP BY no

  -> HAVING repetitions > 1;

  以上查詢語句將返回student表中重複的記錄數。

  2. 過濾重複資料

  如果需要讀取不重複的資料可以在SELECT語句中使用DISTINCT關鍵字來過濾重複資料。

  mysql> SELECT DISTINCT no

  -> FROM student;

  也可以使用 GROUP BY 來讀取資料表中不重複的資料

  mysql> SELECT no

  -> FROM student

  -> GROUP BY (no);

  3. 刪除重複資料

  刪除資料表中重複資料,可以使用以下SQL語句:

  mysql> CREATE TABLE tmp SELECT no, name, sex FROM student GROUP BY (no, sex);

  mysql> DROP TABLE student;

  mysql> ALTER TABLE tmp RENAME TO student;

  也可以在資料表中新增INDEX(索引)和 PRIMAY KEY(主鍵)來刪除表中的重複記錄,方法如下:

  mysql> ALTER IGNORE TABLE student

  -> ADD PRIMARY KEY (no);


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2920417/,如需轉載,請註明出處,否則將追究法律責任。

相關文章