美文网首页
MySQL 中 不等于 会过滤掉 Null 的问题

MySQL 中 不等于 会过滤掉 Null 的问题

作者: 缓慢移动的蜗牛 | 来源:发表于2022-07-20 23:11 被阅读0次

    MySQL判断字符串不等于

    针对于字符串的列,使用MySQL != 的筛选条件时,会将字段为 Null 的数据也当做满足不等于的条件而将数据筛选掉,
    因为 NULL和其他字符串比较返回的都是NULL

    mysql> SELECT NULL != 'abc';
    +---------------+
    | NULL != 'abc' |
    +---------------+
    |          NULL |
    +---------------+
    1 row in set (0.00 sec)
    
    
    mysql> SELECT IFNULL(NULL, '') != 'abc';
    +---------------------------+
    | IFNULL(NULL, '') != 'abc' |
    +---------------------------+
    |                         1 |
    +---------------------------+
    1 row in set (0.00 sec)
    

    示例

    表A

    A1 B1
    1 0
    2 1
    3 NULL

    执行如下查询

    SELECT * FROM A WHERE B1 != 1;
    

    返回结果如下(第三列 B1为空的也是会筛选掉的

    A1 B1
    1 0

    要查出第三列只需将SQL 改为如下语句 即可

    SELECT * FROM A WHERE B1 != 1 OR B1 IS NULL;
    # 或者
    SELECT * FROM A WHERE IFNULL(B1, '') != 1;
    

    相关文章

      网友评论

          本文标题:MySQL 中 不等于 会过滤掉 Null 的问题

          本文链接:https://www.haomeiwen.com/subject/zegyirtx.html