SQL ดึงข้อมูลที่ไม่ซ้ำกันจากตาราง ฐานข้อมูล MySQL บทความนี้สอนเขียนคำสั่ง SQL โดยใช้คำสั่ง GROUP BY ร่วมกับ HAVING เพื่อดึงข้อมูลที่ไม่ซ้ำกันจากตาราง ฐานข้อมูล MySQL สามารถเขียนคำสั่งได้ดังนี้
ตัวอย่าง ข้อมูลภายในตาราง test
+----+------+
| id | name |
+----+------+
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | A |
| 5 | A |
| 6 | C |
+----+------+
ตัวอย่าง SQL ดึงข้อมูลที่ไม่ซ้ำกันจากตาราง ฐานข้อมูล MySQL
SELECT * FROM test GROUP BY name HAVING COUNT(name) = 1;
ผลลัพธ์
+----+------+
| id | name |
+----+------+
| 2 | B |
+----+------+
1 row in set (0.000 sec)
SQL ดึงข้อมูลที่ไม่ซ้ำกันจากตาราง โดยมีรายละเอียดการเขียนคำสั่ง SQL ดังนี้
1. SELECT * FROM test คือ แสดงข้อมูลทั้งหมดจากตาราง test โดยแสดงข้อมูลทุก columns
2. GROUP BY name คือ รวมข้อมูลที่เหมือนกันของ column name ให้เหลือ column เดียว
3. HAVING COUNT(name) = 1 คือ เงื่อนไขดึงข้อมูลที่ไม่ซ้ำกัน โดยใช้คำสั่ง COUNT นับ column name ถ้ามีค่าเท่ากับ 1 แปลว่าไม่ซ้ำ (ถ้าซ้ำข้อมูลจะมากกว่า 1)