MySQL ISNULL函数

时间:2019-11-20 08:52:17  来源:igfitidea点击:

简介:本教程向您介绍MySQL ISNULL函数以及如何使用它处理NULL值。

MySQL ISNULL函数简介

ISNULL函数采用一个参数,并测试该参数是否为NULL。
如果参数为NULL,则ISNULL函数返回1,否则,返回0。

下面说明了ISNULL函数的语法:

ISNULL(expr)

请考虑以下示例:

SELECT ISNULL(NULL); -- 1    
SELECT ISNULL(1);  -- 0
SELECT ISNULL(1 + NULL); -- 1;
SELECT ISNULL(1 / 0 ); -- 1;

请注意,如果您想找到MySQL替代Microsoft SQL Server的ISNULL函数,则应改用MySQL的IFNULL函数。
由于ISNULL函数是MySQL,因此与Microsoft SQL Server的ISNULL函数不同。

MySQL ISNULL函数和IS NULL运算符

ISNULL函数与IS NULL运算符共享某些行为。
例如,如果您有一个DATE列声明为NOT NULL,则可以使用以下语句找到特殊日期'0000-00-00':

SELECT 
    *
FROM
    table_name
WHERE
    ISNULL(date);

请注意,MySQL特意实现了此功能以支持ODBC应用程序,因为ODBC不支持特殊的日期值'0000-00-00'。

让我们来看一个例子。

首先,创建一个名为special_isnull的新表,如下所示:

CREATE TABLE special_isnull (
    start_date DATE NOT NULL
);

其次,将一些数据插入special_isnull表中:

INSERT INTO special_isnull(start_date) 
VALUES('2000-01-01'),
      ('0000-00-00');

第三,使用ISNULL函数从special_isnull表中查询数据:

SELECT 
    *
FROM
    special_isnull
WHERE
    ISNULL(start_date);

该查询返回了一行,而您可能希望它将返回一个空结果集。

当您要否定IS NULL运算符时,请使用NOT运算符,即IS NOT NULL。
但是,对于ISNULL函数,请使用!ISNULL。

在本教程中,您学习了如何使用MySQL ISNULL函数及其特殊行为来处理NULL值。