我们如何区分MySQL IFNULL()和NULLIF()函数?
实际上,MySQLIFNULL()
和NULLIF()
函数的语法几乎相同,如下所示:
的语法IFNULL()
IFNULL(expression1, expression2)
的语法NULLIF()
NULLIF(expression1, expression2)
可以通过它们返回第一个参数作为结果的方式来区分它们。IFNULL()
如果不为NULL,NULLIF()
函数将返回第一个参数,如果两个参数都不相同,则函数将返回第一个参数。
mysql> Select IFNULL('Ram','Shyam'); +-----------------------+ | IFNULL('Ram','Shyam') | +-----------------------+ | Ram | +-----------------------+ 1 row in set (0.00 sec) mysql> Select NULLIF('Ram','Shyam'); +-----------------------+ | NULLIF('Ram','Shyam') | +-----------------------+ | Ram | +-----------------------+ 1 row in set (0.00 sec)
从以上两个函数的结果集中看,它们看起来很相似,但是IFNULL()
函数返回“Ram”,因为它是它的第一个参数,并且不为NULL。另一方面,NULLIF()
函数返回“Ram”,因为它是第一个参数,并且与第二个参数不同。