Syntaxe de MYSQL n'évaluant pas pas égale à la présence de null

Je vais avoir des ennuis avec une requête mysql. Je veux exclure les valeurs de 2. J'ai donc pensé que je ferais suivantes:

table products

id | name     | backorder
-------------------
1  | product1 | NULL
2  | product2 | NULL
3  | product3 | 2

SELECT name from `products` p
WHERE backorder <> '2'

Toutefois, Cela ne donne pas le résultat souhaité de produit1, produit 2 C'est de donner un vide tableau des résultats.

D'autre part, si j'utilise

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

Puis il produit: product3. Mais je veux obtenir les enregistrements pour lesquels il n'est pas égal à 2.

Quelque chose ne fonctionne pas avec la <>'2'. Se pourrait-il que les valeurs NULL sont jeter off? Quelqu'un peut-il suggérer une solution. Merci à l'avance!

  • Vous pouvez utiliser le NULL-safe opérateur d'égalité: WHERE NOT backorder <=> 2
InformationsquelleAutor user1904273 | 2013-04-24