首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 入門

MySQL 重複資料處理:防止、統計、過濾與刪除

     編輯:MySQL 入門

防止重複資料

  • 主鍵 (PRIMARY KEY):強制唯一且非 NULL。
  • 唯一索引 (UNIQUE):允許 NULL,但非 NULL 值必須唯一。

建立複合主鍵範例

CREATE TABLE person_tbl (
    first_name CHAR(20) NOT NULL,
    last_name CHAR(20) NOT NULL,
    sex CHAR(10),
    PRIMARY KEY (last_name, first_name)
);

INSERT IGNORE vs REPLACE

  • INSERT IGNORE:重複時忽略,不報錯,不插入。
  • REPLACE INTO:重複時先刪除舊列,再插入新列。

統計重複資料

SELECT COUNT(*) AS repetitions, last_name, first_name
FROM person_tbl
GROUP BY last_name, first_name
HAVING repetitions > 1;

過濾重複資料

  • SELECT DISTINCT last_name, first_name FROM person_tbl;
  • SELECT last_name, first_name FROM person_tbl GROUP BY (last_name, first_name);

刪除重複資料

方法一:建立暫存表去重

CREATE TABLE tmp SELECT last_name, first_name, sex
FROM person_tbl GROUP BY (last_name, first_name);
DROP TABLE person_tbl;
ALTER TABLE tmp RENAME TO person_tbl;

方法二:加入主鍵/唯一索引並使用 IGNORE

ALTER IGNORE TABLE person_tbl ADD PRIMARY KEY (last_name, first_name);

MySQL 會自動刪除重複列,保留首筆。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved