我在使用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。
product3
2
某些功能无法使用<> '2'。可能是NULL价值观把它扔掉了吗?任何人都可以提出修复建议。
<> '2'
NULL
提前致谢!
使用IS NULL或IS NOT NULL比较NULL值,因为它们是完全未知的。
IS NULL
IS NOT NULL
SELECT name from products p WHERE backorder IS NULL OR backorder <> 2
SQLFiddle演示( 添加了一些记录 )
使用NULL值