注册

详解MySQL的COALESCE()函数:查询第一个非 NULL 的表达式

COALESCE()函数的作用

MySQL的COALESCE()函数用于返回参数列表中的第一个非null表达式的值,并且支持多个参数。当第一个参数为null时,函数会返回下一个非null参数的值,直到找到一个非null参数为止。如果所有参数都为null,则返回null。

COALESCE()函数的使用方法

语法:COALESCE(value1, value2, ....)

其中,value1, value2, ... 是要查找的值的列表,可以有多个参数。下面给出一个简单的实例:

实例1:返回第一个非空值

SELECT COALESCE(NULL, NULL, 'A', NULL, 'B');

输出结果为:A

解释:函数会从第一个参数开始查找,遇到null则继续查找,直到找到非null值'A'。

实例2:使用COALESCE()函数实现多条件查询

假设我们有一个商品表goods_info,包括商品id(goods_id)、品牌(brand)、名称(name)、颜色(color)、尺寸(size)、价格(price)等字段。现在我们希望查询id为1的商品信息,如果商品颜色不为null则显示颜色,否则显示尺寸。

SELECT goods_id, brand, name, COALESCE(color, size) as attribute, price 
FROM goods_info WHERE goods_id = 1;

输出结果为:

goods_id  | brand | name     | attribute | price
-------------------------------------------------
1         | Nike  | Sneakers | Red       | $50

解释:使用COALESCE()函数将color和size字段组合成attribute字段,如果color不为null则attribute为color,否则为size。最终查询结果显示商品id、品牌、名称、组合后的attribute、价格五个字段。