sql判断空值的几种方法

目录

1. is null

2. =''

3. ='NULL'

  在开始前我们先来做一个思考,如下图:

图1

根据上图箭头所指的位置,我们该如何分别去判断空?表从上到下依次为:t_user,t_user_1,t_user_2,下面分三种情况去聊聊。

1. is null

  命令行查t_user表

从命令行可以看出第五条数据存在空值,那么我们执行如下语句试试:

select * from t_user where id='NULL'

 运行结果:

可以看到并没有查出数据,这里存在一个可视化的问题,就是在命令行显示的空值和在可视化工具显示会有偏差,我们转去可视化工具查看:

这里就容易出现问题了,为了更清楚看到数据,我们可以导出表数据(字段id的数据类型tinytext):

可以看到箭头指向的值是NULL,并不是'NULL',这就是空值和字符的区别,所以我们上面执行的语句显然查不出。

SQL中有判断空值的关键字,那就是is null,我们执行如下语句:

select * from t_user where id is null

 执行结果:

2. =''

  先查下表t_user_1:  

  可以看到最后一行是空白的,我们再导出sql看下语句:  

  也是空的字符,由此可以用=''作为关键字来查询

select * from t_user_1 where id =''

 执行结果:

3. ='NULL'

  先查下表t_user_2:

  

查出来的结果和第一点一致,那也是一样的语句吗?前面提到过命令行和可视化工具会有偏差,那么我们导出语句对比一下:

可以看出上面的是空值,而下面的是字符NULL,不要混淆两者。对于字符的NULL,可以用='NULL'='null'关键字查询:

select * from t_user_2 where id='NULL'

select * from t_user_2 where id='null'

  今天的分享到这里,更多分享:公众号【积极向上的阿虫】 回复navicat领取工具

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值