【问题标题】:How to catch NULL value in length mysql?如何在长度mysql中捕获NULL值?
【发布时间】:2020-07-05 02:38:00
【问题描述】:

我有这样的桌子

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,但它不起作用

【问题讨论】:

    标签: mysql sql null


    【解决方案1】:

    NULL 不是字符串,因此您无法将length 与它进行比较。

    尝试:

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

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

    【讨论】:

      【解决方案2】:

      你也可以在这里使用COALESCENULL替换为空字符串,然后进行长度比较:

      SELECT *
      FROM test
      WHERE LENGTH(COALESCE(column1, '')) > 4;
      

      【讨论】:

        猜你喜欢
        • 2020-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-22
        • 2021-06-18
        • 2022-09-23
        相关资源
        最近更新 更多