Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

세 개의 열에서 고유한 값을 선택하고 MySQL을 사용하여 단일 열에 표시


이를 위해 단일 MySQL 쿼리에서 UNION을 두 번 이상 사용합니다. 먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable
   -> (
   -> Value1 int,
   -> Value2 int,
   -> Value3 int
   -> );
Query OK, 0 rows affected (0.69 sec)

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

mysql> insert into DemoTable values(20,null,null);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values(20,null,null);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(20,null,null);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values(10,null,null);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(80,20,100);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values(10,null,null);
Query OK, 1 row affected (0.16 sec)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select *from DemoTable;

이것은 다음과 같은 출력을 생성합니다 -

+--------+--------+--------+
| Value1 | Value2 | Value3 |
+--------+--------+--------+
|     20 |   NULL |   NULL |
|     20 |   NULL |   NULL |
|     20 |   NULL |   NULL |
|     10 |   NULL |   NULL |
|     80 |     20 |    100 |
|     10 |   NULL |   NULL |
+--------+--------+--------+
6 rows in set (0.00 sec)

다음은 3개의 열에서 1 −

로 고유한 값을 선택하는 쿼리입니다.
mysql> select *from
   -> (
   -> select Value1 as AllValue from DemoTable
   -> union
   -> select Value2 as AllValue from DemoTable
   -> union
   -> select Value3 as AllValue from DemoTable
   -> ) tbl where AllValue IS NOT NULL
   -> order by AllValue;

이것은 다음과 같은 출력을 생성합니다 -

+----------+
| AllValue |
+----------+
|       10 |
|       20 |
|       80 |
|      100 |
+----------+
4 rows in set (0.00 sec)