Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีนับจำนวนข้อมูลซ้ำในตาราง MySQL

ใช้ COUNT(*) ร่วม GROUP BY และ IF() เพื่อระบุว่าเป็นข้อมูลซ้ำหรือไม่

ไวยากรณ์

SELECT yourColumn, COUNT(*) AS Repetition,
       IF(COUNT(*) > 1, 'Duplicate Records', 'Not Duplicate Records') AS Status
FROM yourTableName 
GROUP BY yourColumn;

ตัวอย่างการใช้งาน

สร้างตาราง DuplicateRecords:

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

เพิ่มข้อมูล (มีชื่อซ้ำ):

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

ข้อมูลทั้งหมด

+----+-------+
| Id | Name  |
+----+-------+
| 1  | Carol |
| 2  | John  |
| 3  | Sam   |
| 4  | John  |
| 5  | Sam   |
| 6  | Sam   |
| 7  | John  |
| 8  | Carol |
| 9  | Carol |
| 10 | Mike  |
+----+-------+

คำสั่งนับและระบุสถานะ

mysql> SELECT Name, COUNT(*) AS Repetition,
    -> IF(COUNT(*) > 1, 'Duplicate Records', 'Not Duplicate Records') AS IsDuplicate
    -> FROM DuplicateRecords GROUP BY Name;

ผลลัพธ์

+-------+------------+-------------------------+
| Name  | Repetition | IsDuplicate             |
+-------+------------+-------------------------+
| Carol | 3          | Duplicate Records       |
| John  | 3          | Duplicate Records       |
| Sam   | 3          | Duplicate Records       |
| Mike  | 1          | Not Duplicate Records   |
+-------+------------+-------------------------+