我遇到了一个MySQL查询的问题。我想排除值2。所以我想我会做以下:
table products
id | name | backorder
-------------------
1 | product1 | NULL
2 | product2 | NULL
3 | product3 | 2
SELECT name from `products` p
WHERE backorder <> '2'
然而,这并没有给出产品1、产品2所需的结果,而是给出了一个空的结果表。
另一方面如果我用
SELECT name from `products` p
WHERE backorder = '2'
然后它产生:product3
。但是我想得到那些不等于2
的记录。<> '2'
有问题。会不会是NULL
的值把它弄坏了?有没有人能建议一个修复方法。
先谢了!
4条答案
按热度按时间ogq8wdun1#
使用
IS NULL
或IS NOT NULL
来比较NULL
值,因为它们是未知的。but5z9lq2#
使用
<=>
运算符。您可以用途:
或
有关
<=>
运算符的详细信息,请参阅此答案:What is this operator <=> in MySQL?
to94eoyn3#
我们也可以使用它:
gcxthw6b4#
试试看。