使用 MySQL 中,如果查询字符串时使用“!=
”条件,当字段值为 Null 时也会满足该条件。
示例表:
id | name | url |
1 | 张三 | www.02405.com |
2 | 李四 | |
3 | 王五 | NULL |
查询语句:
select * from user where url != 'www.02405.com';
返回结果:
id | name | url |
2 | 李四 |
我们的需求是返回 id 为 2 和 3 的两条记录,因为其中 2 的 url 为空字符串,3 的 url 为 NULL,从字面意思来讲都不等于 www.02405.com 。但实际上在 MySQL 中只返回了 id 为 2 的记录。
解决办法是补充对 null 的判断,比如:
select * from users where url != "www.02405.com" or url is null
当然,如果创建数据表时没有特殊要求的话,MySQL 字段强烈不建议设置 null 为默认值,字符串类型默认值:空字符串即可,这也是 MySQL 数据库设计的一个推荐规范。