Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chọn giá trị chỉ xuất hiện 1 lần từ cột có trùng lặp trong MySQL

Lọc giá trị duy nhất (xuất hiện đúng 1 lần) trong MySQL

Sử dụng GROUP BY kết hợp HAVING COUNT(*) = 1 để tìm các giá trị chỉ xuất hiện một lần duy nhất trong cột (loại bỏ cả giá trị trùng lặp và giá trị không tồn tại).

Ví dụ minh họa

Tạo bảng DemoTable723:

mysql> CREATE TABLE DemoTable723 (Value INT);
Query OK, 0 rows affected (0.58 sec)

Chèn dữ liệu (có giá trị trùng và không trùng):

mysql> INSERT INTO DemoTable723 VALUES(100);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable723 VALUES(200);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable723 VALUES(200);
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable723 VALUES(100);
Query OK, 1 row affected (0.20 sec)
mysql> INSERT INTO DemoTable723 VALUES(300);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable723 VALUES(400);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable723 VALUES(400);
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable723 VALUES(600);
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable723 VALUES(400);
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable723 VALUES(200);
Query OK, 1 row affected (0.17 sec)

Xem dữ liệu gốc:

mysql> SELECT * FROM DemoTable723;
+-------+
| Value |
+-------+
| 100   |
| 200   |
| 200   |
| 100   |
| 300   |
| 400   |
| 400   |
| 600   |
| 400   |
| 200   |
+-------+
10 rows in set (0.00 sec)

Thống kê: 100 (2 lần), 200 (3 lần), 300 (1 lần), 400 (3 lần), 600 (1 lần)

Truy vấn lấy giá trị chỉ xuất hiện 1 lần:

mysql> SELECT * FROM DemoTable723 
GROUP BY Value 
HAVING COUNT(Value) = 1;

Kết quả (chỉ 300 và 600):

+-------+
| Value |
+-------+
| 300   |
| 600   |
+-------+
2 rows in set (0.00 sec)

Giải thích

  • GROUP BY Value: Gom nhóm các hàng cùng giá trị
  • HAVING COUNT(Value) = 1: Lọc nhóm có đúng 1 hàng
  • SELECT * trong MySQL cho phép chọn cột không trong GROUP BY (chỉ lấy giá trị đại diện)

Các biến thể