MySQL 如何区分MySQL IFNULL()和NULLIF()函数?
实际上,MySQL IFNULL()和NULLIF()函数的语法几乎相同,如下所示:
阅读更多:MySQL 教程
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”,因为它是第一个参数且与第二个参数不同。