首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

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

发布于 2024-10-17 12:26:11
0
204

使用 MySQL 中,如果查询字符串时使用“”条件,当字段值为 Null 时也会满足该条件。示例表:idnameurl1张三www..com2李四3王五NULLuser 表查询语句:select f...

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

示例表:

id

name

url

1

张三

www.***.com

2

李四

3

王五

NULL

user 表

查询语句:

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

返回结果:

id

name

url

2

李四

user 表

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

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

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

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

评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流