Ответ 1
используйте IS NULL
или IS NOT NULL
для сравнения значений NULL
, потому что они просто неизвестны.
SELECT name
from products p
WHERE backorder IS NULL OR backorder <> 2
У меня проблемы с запросом 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 NULL
или IS NOT NULL
для сравнения значений NULL
, потому что они просто неизвестны.
SELECT name
from products p
WHERE backorder IS NULL OR backorder <> 2
Вы можете использовать:
SELECT `name` FROM `products` `p`
WHERE NOT `backorder` <=> '2'
или
SELECT `name` FROM `products` `p`
WHERE !(`backorder` <=> '2')
Извините, что открыли это
Мы можем использовать это также
SELECT name
from products p
WHERE COALESCE(backorder,1) <> 2
Попробуйте это и посмотрите.
SELECT name from `products` p
WHERE backorder != '2'