首页 > 解决方案 > 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 nullthen 时,它会返回有效记录。

标签: mysqlsqllaravel

解决方案


大多数与NULL值返回的比较NULL- 和WHERE子句过滤掉NULL值。=和都是如此<>

一种选择是NULL安全操作员:

WHERE NOT supplier_id <=> 2

请注意,这里的 SQL 标准是:

WHERE supplier_id IS DISTINCT FROM 2

但是 MySQL 有自己的操作符。

或者明确地考虑NULLs:

WHERE supplier_id <> 2 OR supplier_id IS NULL

推荐阅读