共计 686 个字符,预计需要花费 2 分钟才能阅读完成。
我们知道,在不同的数据库引擎中,内置函数的实现、命名都是存在差异的,如果经常切换使用这几个数据库引擎的话,很容易会将这些函数弄混淆。
比如说判断空值的函数,在 Oracle 中是 NVL() 函数、NVL2() 函数,在 SQL Server 中是 ISNULL() 函数,这些函数都包含了当值为空值的时候将返回值替换成另一个值的第二参数。
但是在 MySQL 中,ISNULL() 函数仅仅是用于判断空值的,接受一个参数并返回一个布尔值,不提供当值为空值的时候将返回值替换成另一个值的第二参数。
SELECT ISNULL(‘i like yanggb’); // 0
SELECT ISNULL(NULL); // 1
因此 MySQL 另外提供了一个 IFNULL() 函数。
简单介绍
IFNULL() 函数是 MySQL 内置的控制流函数之一,它接受两个参数,第一个参数是要判断空值的字段或值(傻?),第二个字段是当第一个参数是空值的情况下要替换返回的另一个值。如果第一个参数不是 NULL,则返回第一个参数;否则,将返回第二个参数。两个参数都可以是文字值或表达式。
函数的语法
IFNULL(v1, v2)
其中,如果 v1 不为 NULL,则 IFNULL 函数返回 v1; 否则返回 v2 的结果。
简单示例
SELECT IFNULL(NULL, ‘i like yanggb’); // i like yanggb
在上面的例子中,由于第一个参数为 NULL,所以返回的是第二个参数的值。
SELECT IFNULL(‘i like yanggb’, ‘i do like yanggb’); // i like yanggb
在上面的例子中,由于第一个参数不为 NULL,所以返回的是第一个参数的值。