MariaDB IFNULL() 函数使用指南

在 MariaDB 中,IFNULL() 是一个内置函数,如果第一个参数为 NULL,返回第二个参数,否则返回第一个参数。

从 MariaDB 10.3 开始, NVL()IFNULL() 的同义词。

MariaDB IFNULL() 语法

这里是 MariaDB IFNULL() 函数的语法:

IFNULL(expr1, expr2)

参数

expr1
必需的。判断此表达式是否为 NULL
expr2
必需的。当 expr1NULL 时,返回 expr2

返回值

如果 expr1NULLIFNULL() 函数返回 expr1,否则返回 expr2

MariaDB IFNULL() 示例

下面的示例展示了 MariaDB IFNULL() 函数的用法。

简单示例

SELECT IFNULL(NULL, 'It is NULL'),
    IFNULL('I am not NULL', 'I am NULL');

输出:

+----------------------------+--------------------------------------+
| IFNULL(NULL, 'It is NULL') | IFNULL('I am not NULL', 'I am NULL') |
+----------------------------+--------------------------------------+
| It is NULL                 | I am not NULL                        |
+----------------------------+--------------------------------------+

产生默认值

IFNULL() 函数可以在查询时用来生成一个列的默认值。

首先,我们创建一个表 test_ifnull 用于演示:

DROP TABLE IF EXISTS test_ifnull;
CREATE TABLE test_ifnull (
    col VARCHAR(50)
);

让我们插入几个数据:

INSERT INTO test_ifnull VALUES ('A'), ('B'), (NULL), ('D');

现在表中具有了如下数据:

+------+
| col  |
+------+
| A    |
| B    |
| NULL |
| D    |
+------+

我们知道其中一行的值为 NULL。如果我们想为值为 NULL 的列设置一个默认值 Nothing,请使用下面的语句:

SELECT
    col, IFNULL(col, 'Nothing') col_with_default
FROM
    test_ifnull;

输出:

+------+------------------+
| col  | col_with_default |
+------+------------------+
| A    | A                |
| B    | B                |
| NULL | Nothing          |
| D    | D                |
+------+------------------+

我们看到,含有 NULL 的行中的 col_with_default 列的内容变成了 Nothing

结论

在 MariaDB 中,IFNULL() 是一个内置函数,如果第一个参数为 NULL,返回第二个参数,否则返回第一个参数。