mysql coalesce函数与 ifnull 函数对比
IFNULL() 函数
IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。
IFNULL() 函数语法格式为:
IFNULL(expression, alt_value)
如果第一个参数的表达式 expression 为 NULL,则返回第二个参数的备用值。
参数说明:
参数
|
描述
|
expression
|
必须,要测试的值
|
alt_value
|
必须,expression 表达式为 NULL 时返回的值
|
COALESCE() 函数
COALESCE(value,…)是一个可变参函数,可以使用多个参数。
作用:接受多个参数,返回从左至右、第一个不为NULL的参数,如果所有参数都为NULL,那么返回NULL;当它使用2个参数时,和IFNULL函数作用相同。
举个栗子:
SELECT IFNULL(NULL,'test'); //test SELECT IFNULL('Hello','test'); //Hello SELECT IFNULL(NULL,NULL); //NULL SELECT COALESCE('Hello','test'); //Hello SELECT COALESCE(NULL,'test'); //test SELECT COALESCE('Hello','test','test1','test2'); //Hello SELECT COALESCE(NULL,NULL,NULL,'test2'); //test2 SELECT COALESCE(NULL,NULL,NULL,NULL); //NULL
下面这个博主说的我没有去测试,应该是表中一条数据都没有的情况下可能会出现这种情况。