Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Đếm bản ghi trùng lặp trong bảng MySQL

Dùng GROUP BY kết hợp COUNT(*) và IF() để phân loại trùng/lặp.

Cú pháp

SELECT ten_cot, COUNT(*) AS so_lan, 
       IF(COUNT(*) > 1, 'Trùng lặp', 'Không trùng') AS trang_thai
FROM ten_bang 
GROUP BY ten_cot;

Ví dụ minh họa

Tạo bảng DuplicateRecords:

CREATE TABLE DuplicateRecords (
    Id INT NOT NULL AUTO_INCREMENT,
    Name VARCHAR(30),
    PRIMARY KEY (Id)
);

INSERT INTO DuplicateRecords (Name) VALUES
('Carol'), ('John'), ('Sam'), ('John'), ('Sam'), 
('Sam'), ('John'), ('Carol'), ('Carol'), ('Mike');

Truy vấn đếm trùng lặp

SELECT Name, COUNT(*) AS Repetition, 
       IF(COUNT(*) > 1, 'Trùng lặp', 'Không trùng') AS IsDuplicate
FROM DuplicateRecords 
GROUP BY Name;

Kết quả:

+-------+------------+-------------+
| Name  | Repetition | IsDuplicate |
+-------+------------+-------------+
| Carol |          3 | Trùng lặp   |
| John  |          3 | Trùng lặp   |
| Sam   |          3 | Trùng lặp   |
| Mike  |          1 | Không trùng |
+-------+------------+-------------+

Mở rộng: Chỉ lấy các giá trị trùng: HAVING COUNT(*) > 1.