一、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函数可以与其他函数相结合,实现更复杂的操作。