我们如何区分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”,因为它是第一个参数,并且与第二个参数不同。