您的位置:

MySQL函数——COALESCE

一、MySQL函数介绍

MySQL数据库系统支持各种内置函数(built-in functions)。所有通过最新的MySQL版本都可以得到同样的函数支持。MySQL函数可以用于检索、操作和格式化数据。其中有一个十分常用的函数——COALESCE函数。

二、MySQL函数COALESCE

COALESCE函数用于返回参数列表中的第一个非空表达式。在参数列表的字符串中检索第一个不为 NULL 的表达式。如果表达式都为 NULL,则返回 NULL。语法如下:

COALESCE(expr1,expr2,...,exprn)

其中,expr表示目标表达式。可以包含函数。

三、MYSQL COALESCE函数示例

下面是一些MySQL COALESCE函数示例:

1. MySQL COALESCE函数与空值的使用

在下面的示例中,我们将使用COALESCE函数来对姓名和姓氏进行搜索。如果未提供姓氏,则将使用“noboby”代替。如果未提供姓名,则将返回NULL。

SELECT COALESCE(firstname, 'NULL'), COALESCE(lastname, 'nobody')
FROM employees 
WHERE employeeid=1;

上述示例将输出以下结果:

+-------------------------+-----------+
| COALESCE(firstname, 'NULL') | COALESCE(lastname, 'nobody') |
+-------------------------+-----------+
| John | Doe |
+-------------------------+-----------+

2. MySQL COALESCE函数返回第一个非空值

在下面的示例中,我们将使用COALESCE函数查询产品和价格表,返回第一个非空值。

SELECT COALESCE(product, price) FROM products WHERE id=1;

上述示例将输出以下结果:

+-----------------------+
| COALESCE(product,price)|
+-----------------------+
| 5.50 |
+-----------------------+

3. MySQL COALESCE函数在多表联接中的使用

在下面的示例中,我们将使用COALESCE函数进行多表联接。

SELECT COALESCE(customers.customer_name, orders.customer_name) 
FROM customers 
LEFT JOIN orders 
ON customers.customer_id = orders.customer_id 
WHERE customers.customer_id=1;

上述示例将输出以下结果:

+------------------------------------------------+
| COALESCE(customers.customer_name, orders.customer_name)|
+------------------------------------------------+
| Jason |
+------------------------------------------------+

四、其他与MySQL COALESCE函数相关的函数

在MySQL数据库中,COALESCE函数还涉及到其他一些函数,如下图所示:

五、总结

MySQL COALESCE函数十分常用,可以用于返回参数列表中的第一个非 NULL 表达式。如有必要,COALESCE函数可以与其他函数相结合,实现更复杂的操作。