摘要:本教程向您介绍 MySQL ISNULL 函数以及如何使用它来处理 NULL 值。
MySQL ISNULL函数简介
ISNULL
函数接受一个参数并测试该参数是否为NULL
。如果参数为NULL
, ISNULL
函数返回 1,否则返回 0。
下面说明了ISNULL
函数的语法:
ISNULL(expr)
Code language: SQL (Structured Query Language) (sql)
考虑以下示例:
SELECT ISNULL(NULL); -- 1
SELECT ISNULL(1); -- 0
SELECT ISNULL(1 + NULL); -- 1;
SELECT ISNULL(1 / 0 ); -- 1;
Code language: SQL (Structured Query Language) (sql)
请注意,如果您试图找到 Microsoft SQL Server 的
ISNULL
函数的 MySQL 替代方案,则应该使用 MySQL 的IFNULL
函数。因为MySQL的ISNULL
函数不同于Microsoft SQL Server的ISNULL
函数。MySQL ISNULL 函数和 IS NULL 运算符
ISNULL
函数与IS NULL
运算符共享一些行为。例如,如果您有一个声明为NOT NULL
DATE
列,则可以使用以下语句查找特殊日期'0000-00-00'
:
SELECT
*
FROM
table_name
WHERE
ISNULL(date);
Code language: SQL (Structured Query Language) (sql)
请注意,MySQL 特意实现此功能以支持 ODBC 应用程序,因为 ODBC 不支持特殊日期值'0000-00-00'
。
让我们看一个例子。
首先,创建一个名为special_isnull
的新表,如下所示:
CREATE TABLE special_isnull (
start_date DATE NOT NULL
);
Code language: SQL (Structured Query Language) (sql)
其次,将一些数据插入到special_isnull
表中:
INSERT INTO special_isnull(start_date)
VALUES('2000-01-01'),
('0000-00-00');
Code language: SQL (Structured Query Language) (sql)
第三,使用ISNULL
函数从special_isnull
表中查询数据:
SELECT
*
FROM
special_isnull
WHERE
ISNULL(start_date);
Code language: SQL (Structured Query Language) (sql)
该查询返回一行,而您可能期望它将返回一个空结果集。
当您想要否定IS NULL
运算符时,可以使用NOT
运算符,即IS NOT NULL
。但是,对于ISNULL
函数,您可以使用!ISNULL
。
在本教程中,您学习了如何使用 MySQL ISNULL 函数及其特殊行为来处理NULL
值。
本教程有帮助吗?