Computer >> Máy Tính >  >> Lập trình >> MySQL

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

Bạn có thể sử dụng if () từ MySQL để đếm các bản ghi trùng lặp. Cú pháp như sau -

 CHỌN yourColumnName, COUNT (*) AS anyVariableName, IF (COUNT (*)> 1, "Duplicate Records", "Not Duplicate records") as anyVariableName from yourTableName group by yourColumnName; 

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -

 mysql> tạo bảng DuplicateRecords -> (-> Id int NOT NULL AUTO_INCREMENT, -> Name varchar (30), -> PRIMARY KEY (Id) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,82 giây)  

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -

 mysql> chèn vào các giá trị DuplicateRecords (Tên) ('Carol'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,81 giây) mysql> chèn vào các giá trị DuplicateRecords (Tên) ('John'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,17 giây) mysql> chèn vào các giá trị DuplicateRecords (Tên) ('Sam'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,19 giây) mysql> chèn vào các giá trị DuplicateRecords (Tên) ('John'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,17 giây) mysql> chèn vào các giá trị DuplicateRecords (Tên) ('Sam'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,11 giây) mysql> chèn vào các giá trị DuplicateRecords (Tên) ('Sam'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,20 giây) mysql> chèn vào các giá trị DuplicateRecords (Tên) ('John'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,12 giây) mysql> chèn vào các giá trị DuplicateRecords (Tên) ('Carol'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,14 giây) mysql> chèn vào các giá trị DuplicateRecords (Tên) ('Carol'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,10 giây) mysql> chèn vào các giá trị DuplicateRecords (Tên) ('Mike'); Truy vấn OK, 1 hàng bị ảnh hưởng ( 0,14 giây) 

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

 mysql> select * from DuplicateRecords; 

Sau đây là kết quả -

 + ---- + ------- + | Id | Tên | + ---- + ------- + | 1 | Carol || 2 | John || 3 | Sam || 4 | John || 5 | Sam || 6 | Sam || 7 | John || 8 | Carol || 9 | Carol || 10 | Mike | + ---- + ------- + 10 hàng được thiết lập (0,00 giây) 

Đây là truy vấn để đếm các bản ghi trùng lặp từ bảng -

 mysql> CHỌN Tên, Lặp lại COUNT (*) AS, IF (COUNT (*)> 1, "Bản ghi trùng lặp", "Bản ghi không trùng lặp") dưới dạng IsDuplicateRecordsOrNot -> từ nhóm DuplicateRecords theo Tên; 

Sau đây là kết quả -

 + ------- + ------------ + ------------------------- + | Tên | Sự lặp lại | IsDuplicateRecordsOrNot | + ------- + ------------ + ------------------------- + | Carol | 3 | Hồ sơ trùng lặp || John | 3 | Hồ sơ trùng lặp || Sam | 3 | Hồ sơ trùng lặp || Mike | 1 | Bản ghi không trùng lặp | + ------- + ------------ + ------------------------ - + 4 hàng trong bộ (0,00 giây)