Devdit
 

การเช็คข้อมูลซ้ำใน MySQL ด้วย GROUP BY และ HAVING

5.7K

การเช็คข้อมูลซ้ำใน MySQL ด้วย GROUP BY และ HAVING บทความนี้สอนการเขียนคำสั่ง SQL เพื่อเช็คข้อมูลซ้ำในฐานข้อมูล MySQL/MariaDB ด้วย GROUP BY และ HAVING สามารถเขียนคำสั่งได้ดังนี้

 

ตัวอย่าง ข้อมูลของตาราง test ข้อมูล column name มีค่า A และ C ที่ซ้ำ

+----+------+
| id | name |
+----+------+
|  1 | A    |
|  2 | B    |
|  3 | C    |
|  4 | A    |
|  5 | A    |
|  6 | C    |
+----+------+

 

ตัวอย่าง การเช็คข้อมูลซ้ำใน MySQL ด้วย GROUP BY และ HAVING

SELECT *, COUNT(NAME) AS duplicate_count FROM test GROUP BY name HAVING duplicate_count > 1;

ผลลัพธ์

+----+------+-----------------+
| id | name | duplicate_count |
+----+------+-----------------+
|  1 | A    |               3 |
|  3 | C    |               2 |
+----+------+-----------------+
2 rows in set (0.001 sec)

คำอธิบาย

การเช็คข้อมูลซ้ำใน MySQL จากตัวอย่างคำสั่ง SQL สามารถแยกแต่ละส่วน โดยมีรายละเอียดดังนี้

1. SELECT *, COUNT(NAME) AS duplicate_count FROM test คือ แสดงข้อมูลทุก columns และนับข้อมูลจาก column name ตั้งชื่อว่า duplicate_count จากตาราง test

2. GROUP BY name HAVING duplicate_count > 1 คือ ให้รวมข้อมูล name ที่ซ้ำกันเข้าด้วยกัน และแสดงข้อมูลเฉพาะที่ column duplicate_count มีค่ามากกว่า 1 (ถ้าข้อมูลไม่ซ้ำจะมีค่าเท่ากับ 1)

แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ