如何在 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)