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

หาและแสดงค่าซ้ำเพียงครั้งเดียวจากคอลัมน์ใน MySQL

สร้างตารางตัวอย่าง

mysql> create table DemoTable (
    -> value int
    -> );
Query OK, 0 rows affected (0.82 sec)

เพิ่มข้อมูลตัวอย่าง

mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values(100);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(20);
Query OK, 1 row affected (0.28 sec)
mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.34 sec)
mysql> insert into DemoTable values(30);
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable values(40);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(20);
Query OK, 1 row affected (0.07 sec)

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

mysql> select * from DemoTable;

ผลลัพธ์

+-------+
| value |
+-------+
| 10    |
| 100   |
| 20    |
| 10    |
| 30    |
| 40    |
| 20    |
+-------+
7 rows in set (0.00 sec)

คำสั่งหาค่าซ้ำและแสดงเพียงครั้งเดียว

mysql> select * from DemoTable group by value having count(*) > 1;

ผลลัพธ์

+-------+
| value |
+-------+
| 10    |
| 20    |
+-------+
2 rows in set (0.00 sec)

คำอธิบาย: GROUP BY จัดกลุ่มค่าเหมือนกัน HAVING COUNT(*) > 1 กรองเฉพาะกลุ่มที่มีมากกว่า 1 แถว