MYSQL语法不评估不等于存在NULL
我在使用mysql查询时遇到问题。我想排除2的值。所以我想我会做以下事情:
table productsid | 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` pWHERE backorder = '2'
然后产生:product3
。但是我想获得那些不等于的记录2
。
某些功能无法使用<> '2'
。可能是NULL
价值观把它扔掉了吗?任何人都可以提出修复建议。
提前致谢!
回答:
使用IS NULL
或IS 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