如何在 MySQL 中使用 Coalesce?

mysqlmysqli database

MySQL 中的 coalesce 可用于返回第一个非空值。如果有多个列,并且所有列都具有 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)

使用 insert 命令在表中插入一些记录。 查询语句如下。

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)

以下是所有可以返回第一个 NOT NULL 值的情况。查询如下。

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

以下是输出。

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

相关文章