MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで3つの列から個別の値を選択し、1つの列に表示します


このために、単一の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)

  1. MySQLのNULLおよびNOTNULLレコードを含む列からのNOTNULL値のみを表示します

    このために、ISNOTNULLプロパティを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1      (      DueDate date      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1 values('2019-09-10'); Query OK,

  2. 1つの列から別の列に文字列値(ハイフン付き)を分離して選択するMySQLクエリ

    このために、SUBSTRING_INDEX()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1962    (    EmployeeInformation text    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1962 values('101-John-29'); Query OK