一尘不染

MYSQL语法不评估不等于存在NULL

mysql

我在使用mysql查询时遇到问题。我想排除2的值。所以我想我会做以下事情:

table products

id | name     | backorder
-------------------
1  | product1 | NULL
2  | product2 | NULL
3  | product3 | 2

SELECT name from `products` p
WHERE backorder <> '2'

但是,这没有给出product1,product 2的期望结果,而是给出了一个空的结果表。

另一方面,如果我使用

SELECT name from `products` p
WHERE backorder = '2'

然后产生:product3。但是我想获得那些不等于的记录2

某些功能无法使用<> '2'。可能是NULL价值观把它扔掉了吗?任何人都可以提出修复建议。

提前致谢!


阅读 373

收藏
2020-05-17

共1个答案

一尘不染

使用IS NULLIS NOT NULL比较NULL值,因为它们是完全未知的。

SELECT name 
from   products p
WHERE  backorder IS NULL OR backorder <> 2
2020-05-17