在 MySQL 中從兩列中選擇獨特的組合?


要從兩列中選擇獨特的組合,可以使用 CASE 語句。讓我們建立一個帶有一些列的表格。

用於建立表格的查詢如下:

mysql> create table select_DistinctTwoColumns
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> FirstValue char(1),
   -> SecondValue char(1),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.57 sec)

現在,可以使用 insert 命令在表格中插入一些記錄。查詢如下:

mysql> insert into select_DistinctTwoColumns(FirstValue,SecondValue) values('s','t');
Query OK, 1 row affected (0.12 sec)

mysql> insert into select_DistinctTwoColumns(FirstValue,SecondValue) values('t','u');
Query OK, 1 row affected (0.24 sec)

mysql> insert into select_DistinctTwoColumns(FirstValue,SecondValue) values('u','v');
Query OK, 1 row affected (0.12 sec)

mysql> insert into select_DistinctTwoColumns(FirstValue,SecondValue) values('u','t');
Query OK, 1 row affected (0.16 sec)

使用 select 語句顯示錶格中的所有記錄。查詢如下:

mysql> select *from select_DistinctTwoColumns;

以下為輸出:

+----+------------+-------------+
| Id | FirstValue | SecondValue |
+----+------------+-------------+
| 1  | s          | t          |
| 2  | t          | u          |
| 3  | u          | v          |
| 4  | u          | t          |
+----+------------+-------------+
4 rows in set (0.00 sec)

以下是使用 case 語句從兩列中選擇獨特組合的查詢,第一列是“FirstValue”,第二列名稱是“SecondValue”。查詢如下:

mysql> SELECT distinct
   -> CASE
   ->    WHEN FirstValue<SecondValue THEN FirstValue
   ->    ELSE SecondValue
   ->    END AS FirstColumn,
   -> CASE
   ->    WHEN FirstValue > SecondValue THEN FirstValue
   ->    ELSE SecondValue
   ->    END AS SecondColumn
   -> FROM select_DistinctTwoColumns;

以下是輸出

+-------------+--------------+
| FirstColumn | SecondColumn |
+-------------+--------------+
| s           | t            |
| t           | u            |
| u           | v            |
+-------------+--------------+
3 rows in set (0.00 sec)

更新於:2020 年 6 月 30 日

4K+ 瀏覽量

開啟您的 事業

完成課程以獲得認證

入門
廣告