摘要:在本教程中,您将了解MySQL IFNULL函数,这是一个非常方便的处理 NULL 值的控制流函数。
MySQL IFNULL函数简介
MySQL IFNULL
函数是 MySQL 控制流函数之一,它接受两个参数,如果第一个参数不为NULL
,则返回第一个参数。否则, IFNULL
函数返回第二个参数。
这两个参数可以是文字值或表达式。
下面说明了IFNULL
函数的语法:
IFNULL(expression_1,expression_2);
Code language: SQL (Structured Query Language) (sql)
如果expression_1
不为NULL
,则IFNULL
函数返回expression_1
;否则,它返回expression_2
。这
IFNULL
函数根据使用它的上下文返回字符串或数字。
如果要返回基于TRUE
或FALSE
条件而不是NULL
值,则应使用IF 函数。
MySQL IFNULL 函数示例
请参阅以下IFNULL
函数示例:
SELECT IFNULL(1,0); -- returns 1
Code language: SQL (Structured Query Language) (sql)
SELECT IFNULL('',1); -- returns ''
Code language: SQL (Structured Query Language) (sql)
SELECT IFNULL(NULL,'IFNULL function'); -- returns IFNULL function
Code language: SQL (Structured Query Language) (sql)
怎么运行的。
IFNULL(1,0)
返回 1,因为 1 不为NULL
。-
IFNULL(' ',1)
返回' '
,因为' '
字符串不是NULL
。 -
IFNULL(NULL,'IFNULL function')
返回IFNULL function
字符串,因为第一个参数为NULL
。
让我们举一个使用IFNULL
函数的实际示例。
首先,使用以下语句创建一个名为contacts
的新表:
CREATE TABLE IF NOT EXISTS contacts (
contactid INT AUTO_INCREMENT PRIMARY KEY,
contactname VARCHAR(20) NOT NULL,
bizphone VARCHAR(15),
homephone VARCHAR(15)
);
Code language: SQL (Structured Query Language) (sql)
每个联系人都有姓名、工作电话和家庭电话。
其次,向contacts
表中插入数据:
INSERT INTO contacts(contactname,bizphone,homephone)
VALUES('John Doe','(541) 754-3009',NULL),
('Cindy Smith',NULL,'(541) 754-3110'),
('Sue Greenspan','(541) 754-3010','(541) 754-3011'),
('Lily Bush',NULL,'(541) 754-3111');
Code language: SQL (Structured Query Language) (sql)
有些联系人只有家庭电话或工作电话。要从contacts
表中获取所有联系人姓名和电话,请使用以下查询:
SELECT
contactName, bizphone, homephone
FROM
contacts;
Code language: SQL (Structured Query Language) (sql)
如果联系人的办公电话不可用,如果我们能够获取该联系人的家庭电话,那就太好了。这就是
这就是IFNULL
函数发挥作用的地方。如果商务电话为NULL
,则IFNULL
函数返回家庭电话。
第三,使用以下查询获取所有联系人的姓名和电话:
SELECT
contactname, IFNULL(bizphone, homephone) phone
FROM
contacts;
Code language: SQL (Structured Query Language) (sql)
请注意,应避免在WHERE 子句中使用IFNULL
函数,因为它会降低查询的性能。如果你想检查一个值是否是
如果要检查值是否为NULL
,可以在WHERE
子句中使用IS NULL
或IS NOT NULL
。
在本教程中,我们向您介绍了 MySQL IFNULL
函数,并向您展示了如何在查询中使用IFNULL
函数。