Computer >> Máy Tính >  >> Lập trình >> MySQL

Truy vấn MySQL để tránh hiển thị các giá trị trùng lặp?

Đối với điều này, bạn có thể sử dụng GROUP BY và sử dụng COUNT để chỉ nhận các giá trị không trùng lặp. Sau đây là cú pháp -

select yourColumnName from yourTableName group by yourColumnName having count(*)=1;

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Subject varchar(100)
   -> );
Query OK, 0 rows affected (0.70 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable(Subject) values('MySQL');
Query OK, 1 row affected (0.21 sec)

mysql> insert into DemoTable(Subject) values('MongoDB');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable(Subject) values('Java');
Query OK, 1 row affected (0.11 sec)

mysql> insert into DemoTable(Subject) values('MongoDB');
Query OK, 1 row affected (0.11 sec)

mysql> insert into DemoTable(Subject) values('C');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable(Subject) values('C++');
Query OK, 1 row affected (0.11 sec)

mysql> insert into DemoTable(Subject) values('Java');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable(Subject) values('C');
Query OK, 1 row affected (0.23 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Đầu ra

+----+---------+
| Id | Subject |
+----+---------+
| 1  | MySQL   |
| 2  | MongoDB |
| 3  | Java    |
| 4  | MongoDB |
| 5  | C       |
| 6  | C++     |
| 7  | Java    |
| 8  | C       |
+----+---------+
8 rows in set (0.00 sec)

Đây là truy vấn để tránh hiển thị các bản sao -

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

Đầu ra

+---------+
| Subject |
+---------+
| MySQL   |
| C++     |
+---------+
2 rows in set (0.00 sec)