本文依旧有些水,说的是:mysql中如何查找某个字段为空的数据。字段为空,这句话说起来是比较简单,但是(⊙﹏⊙),“空”这个词的定义是什么?总是傻傻的分不清楚。那,到底什么是空呢?佛祖云:四大皆空。

苏南大叔:mysql的sql语句,如何检测字段为空NULL的情况 - mysql-field-null
mysql的sql语句,如何检测字段为空NULL的情况(图10-1)

本文测试环境:win10/mysql@5.5.53

基础结构

本文的目标测试表结构如下:

DROP TABLE IF EXISTS `test_table`;
CREATE TABLE `test_table` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `comment` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4;
INSERT INTO `test_table` VALUES (1,'NULL','NULL string'),(2,NULL,'real NULL'),(3,'','just blank');

这个测试表里面,共有三条数据,主要区别就是name字段的数据不同。如下图所示:

苏南大叔:mysql的sql语句,如何检测字段为空NULL的情况 - sql-data
mysql的sql语句,如何检测字段为空NULL的情况(图10-2)

总结

大多数人意识中的"空",应该就是空字符串,就是连个空格都算不上的那个"空"。而数据库层面上的"空",应该是对象NULL,而不是字符串NULL。字符串NULL仅仅是个字符串,有个假的外表的字符串,这个是苏南大叔的理解和解读。推荐的知识点就是两个:is NULLis not NULL

本文针对的实验对象是mysql,因为不同的数据库的sql语句,都是有所差异的。所以,其他的数据库的话,还请具体问题具体分析。更多mysql的经常经验文章,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   mysql    sql

本站的忠实读者小伙伴,正在阅读下面这些文章: