MySQL IFNULL() 函数使用指南
MySQL IFNULL()
函数是一个 if-else 的函数,如果第一个参数为 NULL
,返回第二个参数,否则返回第一个参数。
IFNULL()
语法
这里是 MySQL IFNULL()
函数的语法:
IFNULL(expr1, expr2)
此函数相当于 IF()
和 ISNULL()
函数的结合: IF(ISNULL(expr1), expr2, expr1)
。
参数
expr1
- 必需的。判断此表达式是否为
NULL
。 expr2
- 必需的。当
expr1
为NULL
时,返回expr2
。
返回值
如果 expr1
为 NULL
,IFNULL()
函数返回 expr1
,否则返回 expr2
。
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
。