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

Làm cách nào để CHỌN tất cả các giá trị từ một bảng chỉ một lần nếu chúng bị trùng lặp?

Bạn có thể sử dụng từ khóa riêng biệt để chọn tất cả các giá trị từ bảng chỉ một lần nếu chúng được lặp lại.

Cú pháp như sau

select distinct yourColumnName from yourTableName;

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau.

mysql> create table displayOnlyDistinctValue
   -> (
   -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> UserName varchar(100),
   -> UserAge int
   -> );
Query OK, 0 rows affected (0.47 sec)

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

Truy vấn như sau.

mysql> insert into displayOnlyDistinctValue(UserName,UserAge) values('Larry',23);
Query OK, 1 row affected (0.23 sec)
mysql> insert into displayOnlyDistinctValue(UserName,UserAge) values('Mike',23);
Query OK, 1 row affected (0.13 sec)
mysql> insert into displayOnlyDistinctValue(UserName,UserAge) values('Larry',21);
Query OK, 1 row affected (0.16 sec)
mysql> insert into displayOnlyDistinctValue(UserName,UserAge) values('Sam',23);
Query OK, 1 row affected (0.20 sec)
mysql> insert into displayOnlyDistinctValue(UserName,UserAge) values('Carol',25);
Query OK, 1 row affected (0.16 sec)
mysql> insert into displayOnlyDistinctValue(UserName,UserAge) values('Sam',26);
Query OK, 1 row affected (0.14 sec)
mysql> insert into displayOnlyDistinctValue(UserName,UserAge) values('Sam',27);
Query OK, 1 row affected (0.13 sec)
mysql> insert into displayOnlyDistinctValue(UserName,UserAge) values('Bob',22);
Query OK, 1 row affected (0.17 sec)
mysql> insert into displayOnlyDistinctValue(UserName,UserAge) values('Larry',22);
Query OK, 1 row affected (0.16 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select.

Truy vấn như sau.

mysql> select *from displayOnlyDistinctValue;

Sau đây là kết quả đầu ra.

+--------+----------+---------+
| UserId | UserName | UserAge |
+--------+----------+---------+
| 1      | Larry    | 23      |
| 2      | Mike     | 23      |
| 3      | Larry    | 21      |
| 4      | Sam      | 23      |
| 5      | Carol    | 25      |
| 6      | Sam      | 26      |
| 7      | Sam      | 27      |
| 8      | Bob      | 22      |
| 9      | Larry    | 22      |
+--------+----------+---------+
9 rows in set (0.00 sec)

Đây là truy vấn để chọn tất cả các giá trị từ bảng chỉ một lần nếu chúng bị trùng lặp.

Trường hợp 1 - Trong tên cột UserName.

Truy vấn như sau.

mysql> select distinct UserName from displayOnlyDistinctValue;

Đầu ra

+----------+
| UserName |
+----------+
| Larry    |
| Mike     |
| Sam      |
| Carol    |
| Bob      |
+----------+
5 rows in set (0.00 sec)

Trường hợp 2 -Trong tên cột UserAge.

Truy vấn như sau.

mysql> select distinct UserAge from displayOnlyDistinctValue;

Đầu ra ..

+---------+
| UserAge |
+---------+
| 23      |
| 21      |
| 25      | 
| 26      |
| 27      |
| 22      |
+---------+
6 rows in set (0.00 sec)