MySQL判断空值的三种方法
在开始前我们先来做一个思考,如下图:
根据上图箭头所指的位置,我们该如何分别去判断空?表从上到下依次为: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'
到此这篇关于MySQL判断空值的三种方法的文章就介绍到这了,更多相关MySQL判断空值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
MySQL性能参数详解之Skip-External-Locking参数介绍
MySQL的配置文件my.cnf中默认存在一行skip-external-locking的参数,即跳过外部锁定。根据MySQL开发网站的官方解释,External-locking用于多进程条件下为MyISAM数据表进行锁定2016-05-05MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)
很多人都将 数据库设计范式 作为数据库表结构设计“圣经”,认为只要按照这个范式需求设计,就能让设计出来的表结构足够优化,既能保证性能优异同时还能满足扩展性要求2014-03-03
最新评论