我遇到了mysql查询的问题.我想排除2的值.所以我想我会做以下事情:
table products
id | name | backorder
-------------------
1 | product1 | NULL
2 | product2 | NULL
3 | product3 | 2
SELECT name from `products` p
WHERE backorder <> '2'
Run Code Online (Sandbox Code Playgroud)
但是,这并没有给出product1产品2的预期结果.它给出了一个空结果表.
另一方面,如果我使用
SELECT name from `products` p
WHERE backorder = '2'
Run Code Online (Sandbox Code Playgroud)
然后它产生:product3.但是我希望得到那些不等于2的记录.
有些东西不适用于<>'2'.可能是NULL值正在抛弃它吗?任何人都可以建议修复.提前致谢!
Joh*_*Woo 67
使用IS NULL或IS NOT NULL比较NULL值,因为它们只是未知的.
SELECT name
from products p
WHERE backorder IS NULL OR backorder <> 2
Run Code Online (Sandbox Code Playgroud)
sim*_*eco 14
您可以使用:
SELECT `name` FROM `products` `p`
WHERE NOT `backorder` <=> '2'
Run Code Online (Sandbox Code Playgroud)
要么
SELECT `name` FROM `products` `p`
WHERE !(`backorder` <=> '2')
Run Code Online (Sandbox Code Playgroud)
小智 7
很抱歉打开这个
我们也可以使用它
SELECT name
from products p
WHERE COALESCE(backorder,1) <> 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32427 次 |
| 最近记录: |