Подтвердить что ты не робот

Синтаксис MYSQL не оценивается, не равен в присутствии NULL

У меня проблемы с запросом 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 отбрасывают его? Может кто-нибудь предложить исправление.

Заранее спасибо!

4b9b3361

Ответ 2

Вы можете использовать:

SELECT `name` FROM `products` `p`
WHERE NOT `backorder` <=> '2'

или

SELECT `name` FROM `products` `p`
WHERE !(`backorder` <=> '2')

Ответ 3

Извините, что открыли это

Мы можем использовать это также

SELECT name 
from   products p
WHERE  COALESCE(backorder,1)  <> 2

Ответ 4

Попробуйте это и посмотрите.

SELECT name from `products` p
WHERE backorder != '2'