我们怎样区分 MySQL IFNULL() 和 NULLIF() 函数?


实际上,MySQL IFNULL() 和 NULLIF() 函数的语法几乎相同,如下所示:-

IFNULL() 的语法

IFNULL(expression1, expression2)

NULLIF() 的语法

NULLIF(expression1, expression2)

它们之间的区别在于它们将第一个参数作为结果返回的方式。如果第一个参数不为 NULL,则 IFNULL() 函数将返回第一个参数作为结果;如果两个参数不相同时,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’,因为它既是第一个参数,又不同于第二个参数。

更新于: 2020 年 6 月 20 日

2000+ 人浏览

开启你的 职业生涯

完成课程并获得认证

开始
广告