mysql的isnull函数_MySQL isnull()函数基本指南

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

MySQL ISNULL函数简介

ISNULL函数接受一个参数,并测试该参数是否为。如果参数为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;

请注意,如果您尝试找到Microsoft SQL Server的ISNULL函数的MySQL替代方法,则应该使用MySQL的函数。 因为ISNULL函数在MySQL中与Microsoft SQL Server的ISNULL函数是不同的。

MySQL ISNULL函数和IS NULL运算符

ISNULL函数与IS NULL运算符共享一些行为。 例如,如果您将DATE类型的列声明为,则可以使用以下语句查找特殊日期“0000-00-00”:

SELECT * FROM table_name WHERE ISNULL(date);

请注意,MySQL故意实现此函数来支持ODBC应用程序,因为ODBC不支持特殊日期值'0000-00-00'。或者修改以下值为: sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,官方手册参考:

我们来看下面的一个例子。

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

USE testdb; drop table if exists special_isnull; CREATE TABLE special_isnull ( start_date DATE default NULL );

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

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

注意:MySQL 5.7 中不允许插入 0000-00-00 值

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

SELECT * FROM special_isnull WHERE ISNULL(start_date);

执行上面查询语句,得到以下结果 –

+------------+ | start_date | +------------+ | NULL | +------------+ 1 row in set

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

当您要取消IS NULL运算符时,可以使用NOT运算符,即IS NOT NULL。 但是,对于ISNULL函数,可以使用!ISNULL。

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

¥ 我要打赏 纠错/补充 收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值