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

MySQLの条件に基づいてNULLおよびその他の値を持つテーブルからレコードをフェッチする


まずテーブルを作成しましょう-

mysql> create table DemoTable
(
   value1 int,
   value2 int,
   value3 int
);
Query OK, 0 rows affected (0.70 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values(20,40,null);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values(40,40,null);
Query OK, 1 row affected (0.26 sec)
mysql> insert into DemoTable values(null,null,null);
Query OK, 1 row affected (0.17 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+--------+--------+--------+
| value1 | value2 | value3 |
+--------+--------+--------+
|     20 |     40 | NULL   |
|     40 |     40 | NULL   |
|   NULL |   NULL | NULL   |
+--------+--------+--------+
3 rows in set (0.00 sec

これは、NULLに基づいてレコードをフェッチし、いくつかの条件に基づいて他の値をフェッチするクエリです-

mysql> select *from DemoTable
where (value1 is null or value1!=20) and
(value2 is null or value2!=20) and
(value3 is null or value3!=20);

これにより、次の出力が生成されます-

+--------+--------+--------+
| value1 | value2 | value3 |
+--------+--------+--------+
|     40 |     40 | NULL   |
|   NULL |   NULL | NULL   |
+--------+--------+--------+
2 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. MySQLの条件が異なる同じ列の2つの値を連結します

    このために、集計関数でgroup_concat()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1869      (      Id int,      Subject varchar(20 ),      Name varchar(20)      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレ