MySQL 查询“不等于”时,如果值为 null 也会满足条件的解决办法。

admin 阅读:71 2024-03-11

使用 MySQL 中,如果查询字符串时使用“!=”条件,当字段值为 Null 时也会满足该条件。

示例表:

idnameurl
1张三www.codesou.cn
2李四
3王五NULL
user 表

查询语句:

select * from user where url != 'www.codesou.cn';

返回结果:

idnameurl
2李四
user 表

我们的需求是返回 id 为 2 和 3 的两条记录,因为其中 2 的 url 为空字符串,3 的 url 为 NULL,从字面意思来讲都不等于 www.codesou.cn 。但实际上在 MySQL 中只返回了 id 为 2 的记录。

解决办法是补充对 null 的判断,比如:

select * from users where url != "www.codesou.cn" or url is null

当然,如果创建数据表时没有特殊要求的话,MySQL 字段强烈不建议设置 null 为默认值,字符串类型默认值:空字符串即可,这也是 MySQL 数据库设计的一个推荐规范。

声明

1、部分文章来源于网络,仅作为参考。
2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!