首页 > 解决方案 > 如何在长度mysql中捕获NULL值?

问题描述

我有这样的桌子

Table : test
column1 | column2
aaaaaa  | 113323
(NULL)  | 2331233
2       | 899999
99999   | 222222
abc     | 13123
jul     | 98282

我试图找到 column1 中单词的长度小于 4,所以我使用了这个查询。

select * from test where length(column1) < '4'

我只得到这个:

column1 | column2
abc     | 13123
jul     | 98282
2       | 899999

为什么我的查询没有捕捉到 NULL 值?我的查询有问题吗?我期待的是这样

column1 | column2
(NULL)  | 2331233
abc     | 13123
jul     | 98282
2       | 899999

我有另一种解决方案,例如使用where column1 is null但它不起作用

标签: mysqlsqlnull

解决方案


NULL不是字符串,因此您无法与之比较length

尝试:

select * from test where length(column1) < '4' or column1 is NULL;

因此,如果该值(NULL)确实为 null,它将被匹配,但如果它是一些奇怪/修改过的版本而不是真正的 MySql NULL,它将不会被匹配


推荐阅读