首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在MySQL中检查列是否为空或null?

如何在MySQL中检查列是否为空或null?
EN

Stack Overflow用户
提问于 2011-12-12 14:49:37
回答 17查看 854.7K关注 0票数 330

我的表中有一列可能包含null或空值。如何检查表中存在的行中的列是否为空或null?

代码语言:javascript
复制
(e.g. null or '' or '  ' or '      ' and ...)
EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2011-12-12 14:54:17

这将选择some_colNULL'' (空字符串)的所有行

代码语言:javascript
复制
SELECT * FROM table WHERE some_col IS NULL OR some_col = '';
票数 509
EN

Stack Overflow用户

发布于 2011-12-12 20:28:55

根据SQL-92标准的定义,当比较两个不同宽度的字符串时,较窄的值将用空格右填充,以使其与较宽的值具有相同的宽度。因此,所有完全由空格(包括零空格)组成的字符串值将被视为相等,例如

代码语言:javascript
复制
'' = ' ' IS TRUE
'' = '  ' IS TRUE
' ' = '  ' IS TRUE
'  ' = '      ' IS TRUE
etc

因此,无论some_col值由多少个空格组成,这都应该有效:

代码语言:javascript
复制
SELECT * 
  FROM T
 WHERE some_col IS NULL 
       OR some_col = ' ';

或者更简洁地说:

代码语言:javascript
复制
SELECT * 
  FROM T
 WHERE NULLIF(some_col, ' ') IS NULL;
票数 148
EN

Stack Overflow用户

发布于 2013-07-01 00:24:18

编写条件的一种更短的方法:

代码语言:javascript
复制
WHERE some_col > ''

因为null > ''会生成unknown,所以这会过滤掉null和空字符串。

票数 82
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8470813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档