“is null”语句用于在mysql中进行空值查询,可以判断字段的值是否为空(null)。在查询时,如果字段为空,则会匹配查询条件,记录将被检索出来;如果字段不为空,则不符合查询条件。“is null”是一个比较运算符,故而可以在任何可以使用运算符的地方使用它,例如select或where语句中。
mysql is null:空值查询
使用 is null 关键字可以判断 mysql 数据库字段的值是否是 null。空值不同于 0,也不同于空字符串。
如果字段的值是空值,则满足查询条件,该记录将被查询出来。如果字段的值不是空值,则不满足查询条件。
使用 is null 的基本语法格式如下:
is [not] null
其中,“not”是可选参数,表示字段值不是空值时满足条件。
如果值为null,则表达式返回true,否则返回false。
注意,mysql没有内置boolean类型(布尔值),其使用tinyint(1)来表示boolean值,即1表示true,0表示false。
is null是一个比较运算符,故而可以在任何可以使用运算符的地方使用它,例如select或where语句中。
select 1 is null, 0 is null,null is null;
要检查某字段不是null,则可使用is not null。
select 1 is not null, 0 is not null,null is not null;
例子
从customers表使用is null运算符查找没有销售代表的客户:
select customername, country, salesrepemployeenumber from customers where salesrepemployeenumber is null order by customername limit 5;
mysql is null的特殊功能
为了与odbc程序兼容,mysql支持is null运算符的一些特殊功能。
1)如果具有约束条件如not null并且包含特殊日期'0000-00-00'的、格式是date或datetime的字段,可以is null运算符来查找。
create table if not exists projects (
id int auto_increment,
title varchar(255),
begin_date date not null,
complete_date date not null,
primary key(id)
);
insert into projects(title,begin_date, complete_date)
values('new crm','2020-01-01','0000-00-00'),
('erp future','2020-01-01','0000-00-00'),
('vr','2020-01-01','2030-01-01');
select * from projects where complete_date is null;
创建了一个名为projects的表,其complete_date 字段not null且含有特殊日期'0000-00-00'。
使用 complete_date is null可以获取日期为'0000-00-00'的行。
2)继续使用projects表。
如果变量@@sql_auto_is_null设置为1,则可以在insert使用is null运算符执行语句后获取id生成列的值。
注意,在默认情况下,@@sql_auto_is_null设置为0。
set @@sql_auto_is_null =1;
insert into projects (title,begin_date,complete_date)
values('mrp iii','2010-01-01','2020-12-31');
select id from projects where id is null;
以上就是mysql中is null指的是什么的详细内容。