如果表中有重複值,如何只選擇一次所有值?


您可以使用 distinct 關鍵字從表中選擇所有值,如果它們重複則只選擇一次。

語法如下所示

select distinct yourColumnName from yourTableName;

為了理解上述語法,讓我們建立一個表。建立表的查詢如下所示。

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)

使用 insert 命令在表中插入一些記錄。

查詢如下所示。

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)

使用 select 語句顯示錶中的所有記錄。

查詢如下所示。

mysql> select *from displayOnlyDistinctValue;

以下是輸出。

+--------+----------+---------+
| 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)

以下是僅選擇表中所有值一次(如果重複)的查詢。

案例 1 - 在 UserName 列名中。

查詢如下所示。

mysql> select distinct UserName from displayOnlyDistinctValue;

輸出

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

案例 2 - 在 UserAge 列名中。

查詢如下所示。

mysql> select distinct UserAge from displayOnlyDistinctValue;

輸出。

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

更新於: 2019-07-30

6K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.