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

MySQLでCoalesceを使用する方法は?


MySQLの合体を使用して、nullではなく最初の値を返すことができます。複数の列があり、すべての列にNULL値がある場合は、NULLを返します。それ以外の場合は、最初にNULL値ではなく戻ります。

構文は次のとおりです。

SELECT COALESCE(yourColumnName1,yourColumnName2,yourColumnName3,.......N) as
anyVariableName from yourTableName;

上記の構文を理解するために、最初にテーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。

mysql> create table CoalesceDemo
-> (
-> Id int,
-> Name varchar(100),
-> Age int,
-> Address varchar(100)
-> );
Query OK, 0 rows affected (0.57 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです。

mysql> insert into CoalesceDemo values(1,NULL,NULL,NULL);
Query OK, 1 row affected (0.14 sec)

mysql> insert into CoalesceDemo values(NULL,'Mike',NULL,NULL);
Query OK, 1 row affected (0.17 sec)

mysql> insert into CoalesceDemo values(NULL,NULL,23,NULL);
Query OK, 1 row affected (0.24 sec)

mysql> insert into CoalesceDemo values(NULL,NULL,NULL,'UK');
Query OK, 1 row affected (0.14 sec)

mysql> insert into CoalesceDemo values(NULL,NULL,NULL,NULL);
Query OK, 1 row affected (0.17 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです。

mysql> select *from CoalesceDemo;

以下は出力です。

+------+------+------+---------+
| Id    | Name | Age | Address |
+------+------+------+---------+
| 1    | NULL | NULL | NULL    |
| NULL | Mike | NULL | NULL    |
| NULL | NULL | 23   | NULL    |
| NULL | NULL | NULL | UK      |
| NULL | NULL | NULL | NULL    |
+------+------+------+---------+
5 rows in set (0.00 sec)

これは、最初のNOTNULL値を返すことができるすべての場合です。クエリは次のとおりです。

mysql> select Coalesce(Id,Name,Age,Address) as FirstNotNullValue from CoalesceDemo;

以下は出力です。

+-------------------+
| FirstNotNullValue |
+-------------------+
| 1                 |
| Mike              |
| 23                |
| UK                |
| NULL              |
+-------------------+
5 rows in set (0.00 sec)

  1. MySQLでORDERBYNULLを使用できますか?

    はい、できます 注 −MySQL5.7以前はORDERBYNULLが便利でしたが、MySQL 8.0では、たとえば、暗黙の並べ替えを抑制するために最後にORDERBYNULLを指定する必要がなくなりました。 まずテーブルを作成しましょう- mysql> create table DemoTable -> ( -> Name varchar(10) -> ); Query OK, 0 rows affected (1.01 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable v

  2. MySQLで@記号を使用するにはどうすればよいですか?

    @記号を使用するには、MySQLSETコマンドを使用します。 @signは、ユーザー定義変数を設定するために使用されます。以下は構文です- SET @anyVariableName:=yourValue; まずテーブルを作成しましょう- mysql> create table DemoTable1331    -> (    -> Id int,    -> Name varchar(20)    -> ); Query OK, 0 rows affected (0.51 sec)