MySQL IFNULL

摘要:在本教程中,您将了解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函数根据使用它的上下文返回字符串或数字。

如果要返回基于TRUEFALSE条件而不是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 functionCode 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)

试试看

MySQL IFNULL 函数示例

如果联系人的办公电话不可用,如果我们能够获取该联系人的家庭电话,那就太好了。这就是

这就是IFNULL函数发挥作用的地方。如果商务电话为NULL ,则IFNULL函数返回家庭电话。

第三,使用以下查询获取所有联系人的姓名和电话:

SELECT 
    contactname, IFNULL(bizphone, homephone) phone
FROM
    contacts;Code language: SQL (Structured Query Language) (sql)

试试看

MySQL IFNULL 结果

请注意,应避免在WHERE 子句中使用IFNULL函数,因为它会降低查询的性能。如果你想检查一个值是否是

如果要检查值是否为NULL ,可以在WHERE子句中使用IS NULLIS NOT NULL

在本教程中,我们向您介绍了 MySQL IFNULL函数,并向您展示了如何在查询中使用IFNULL函数。

本教程有帮助吗?