mysql - Mysql 不返回具有 NULL 值的记录
问题描述
我的表中有一个列作为供应商 ID。当我应用 where 条件时,supplier_id <> 2
它不会返回在 supplier_id 列中具有 NULL 的记录。
这是我的查询:
select * from materials where supplier_id <> 2;
但是,当我尝试使用where supplier_id <> 2 or supplier_id is null
then 时,它会返回有效记录。
解决方案
大多数与NULL
值返回的比较NULL
- 和WHERE
子句过滤掉NULL
值。=
和都是如此<>
。
一种选择是NULL
安全操作员:
WHERE NOT supplier_id <=> 2
请注意,这里的 SQL 标准是:
WHERE supplier_id IS DISTINCT FROM 2
但是 MySQL 有自己的操作符。
或者明确地考虑NULL
s:
WHERE supplier_id <> 2 OR supplier_id IS NULL
推荐阅读
- .net - Powershell XMLDocument 保存为没有 BOM 的 UTF-8
- android - Firebase 查询函数只返回 false。(除布尔变量 doesExist 外,所有代码都有效)
- sql - 动态查询中返回错误结果的函数
- python - 错误信息:不知道 'doit(cf_key)' 是什么!(工厂,工厂文件)
- php - Gmail SMTP 凭据:无法发送邮件。邮件程序错误:SMTP 错误:无法验证
- flutter - 颤振:用流而不是setState()更新单独类中的值状态?
- python - 当字符串中存在非格式化大括号时,在 python 中格式化字符串的最佳方法
- .net-core - 仅在 .NET Core 3.1 项目中进行目标重建
- python - 我怎样才能使python可以在命令提示符下检查 SystemError
- .net - 如何使用 dotnet.exe 和 MSBuild.Sdk.Extras 定位 sl5?