web-dev-qa-db-fra.com

SQL / MySQL NOT NULL vs NOT EMPTY

Je voudrais limiter ma requête pour n'afficher que les lignes où un certain champ n'est pas vide. J'ai trouvé ce fil où quelqu'un a posé la même question et m'a dit d'utiliser IS NOT NULL. J'ai essayé, mais je reçois toujours des lignes où le champ est vide.

Quelle est la bonne façon de procéder? Null est-il la même chose que Empty dans SQL/MySQL?

Ma requête, si vous êtes intéressé est: SELECT * FROM records WHERE (party_Zip='49080' OR party_Zip='49078' OR party_Zip='49284' ) AND partyfn IS NOT NULL

14
cream

Lors de la comparaison d'une valeur NULL, le résultat devient dans la plupart des cas NULL et a donc le même résultat que 0 (La valeur FAUX dans MySQL) dans WHERE et HAVING.

Dans votre exemple donné, vous n'avez pas besoin d'inclure IS NOT NULL. Utilisez simplement party_Zip IN ('49080', '49078', '49284'). NULL ne peut pas être 49080, 49078, 49284 ou tout autre nombre ou chaîne.

Cependant, ce à quoi vous devez penser, c'est lorsque vous recherchez des valeurs vides. !party_Zip Ne renverra pas TRUE/1 Si la valeur est NULL. Utilisez plutôt OR columns IS NULL Ou !COALESCE(party_Zip, 0)

9
Robin Castlin

Je l'ai eu en utilisant AND (partyfn IS NOT NULL AND partyfn != '')

33
cream