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

我在使用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价值观把它扔掉了吗?任何人都可以提出修复建议。

提前致谢!

回答:

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

SELECT name 

from products p

WHERE backorder IS NULL OR backorder <> 2

  • SQLFiddle演示
  • SQLFiddle演示( 添加了一些记录

  • 使用NULL值

以上是 MYSQL语法不评估不等于存在NULL 的全部内容, 来源链接: utcz.com/qa/401815.html

回到顶部