MySQL IFNULL函数
此部分帮助您了解MySQL IFNULL()函数。IFNULL函数是MySQL控制流函数的一部分,用于处理NULL值。
IFNULL函数接受两个表达式,如果第一个表达式不为空,则返回第一个参数。如果第一个表达式为空,则返回第二个参数。该函数根据使用的上下文返回字符串或数字值。
语法
我们可以使用以下语法使用IFNULL函数:
IFNULL (Expression1, Expression2)
当表达式1不为空时,它返回表达式1。否则,它将返回表达式2。
参数
参数 | 要求 | 描述 |
---|---|---|
表达式 1 | 必需 | 此表达式用于检查其是否为空。 |
表达式 2 | 必需 | 当表达式 1 为空时,它将返回。 |
MySQL版本支持
IFNULL函数支持以下MySQL版本:
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
- MySQL 4.0
让我们通过下面的示例来了解MySQL IFNULL()函数。我们可以直接在 SELECT 语句中使用IFNULL函数。
示例1
SELECT IFNULL(0,5);
在上述函数中,MySQL语句检查第一个表达式。如果第一个表达式不为NULL,则返回第一个表达式,即0。
输出:
0
例子 2
SELECT IFNULL("Hello", "javaTpoint");
以上MySQL语句检查第一个表达式。如果第一个表达式不为NULL,则返回第一个表达式,即 ‘Hello’ 的值。
输出:
Hello
示例 3
SELECT IFNULL(NULL,5);
以下MySQL语句检查第一个表达式。如果第一个表达式不为NULL,则返回第一个表达式。否则,返回第二个表达式,即5。
输出:
5
示例 4
在这里,我们将创建一个表格 ‘student_contacts’ 并执行IFNULL()函数。
CREATE TABLE `student_contacts` (
`studentid` int unsigned NOT NULL AUTO_INCREMENT,
`contactname` varchar(45) NOT NULL,
`cellphone` varchar(20) DEFAULT NULL,
`homephone` varchar(20) DEFAULT NULL,
);
现在,您需要向表中插入数据。在将值插入表中之后,请执行以下查询。
SELECT
contactname, cellphone, homephone
FROM
student_contacts;
它将显示包含所有行和列的输出。在这里,我们可以看到一些联系人只有一个手机或家庭电话号码。
在上述输出中,我们将获得所有联系人的姓名,无论手机号码和家庭电话号码是否可用。因此,在这种情况下,IFNULL()函数发挥了重要作用。
现在,运行以下MySQL查询。如果手机号码为空,此语句将返回家庭电话号码。
SELECT
contactname, IFNULL(cellphone, homephone) phone
FROM
student_contact;
输出:
当上述MySQL语句成功运行时,将会得到以下输出。
注意:应避免在WHERE子句中使用IFNULL()函数,因为此函数会降低查询的性能。