Sélection incorrecte avec IS NOT NULL
Bonjour,
J'ai créé une table t_animaux qui contient une colonne commentaire_animal.
Dans la colonne animal, soit un commentaire existe soit la valeur NULL est affichée.
Quand je fais :
SELECT *
FROM t_animaux
WHERE commentaire_animal != NULL;
J'obtiens les bons résultats.
Par contre quand je fais : WHERE commentaire_animal IS NOT NULL, j'obtiens des lignes supplémentaires où les commentaires sont NULL.
Pouvez-vous me donner une piste de travail?
D'avance merci pour le temps que vous prendrez à me répondre.
Cordialement.
bannir les colonnes avec NULL. autorisé...
Bonjour,
Cataclop, très bizarre votre résultat...
Votre table dispose bien d'une clé primaire ? (id est bien déclaré explicitement comme 'Primary Key' (cf. exemple d'Artemus24)).
Par ailleurs, en acceptant les NULL dans la colonne t_animaux.commentaire_animal, votre modèle n'est pas propre : Pour être 'Relational compliant' vous devez supprimer cette colonne et créer une table comportant cette colonne 'commentaire_animal' avec l'attribut 'NOT NULL' . Cette nouvelle table (vous aurez donc 2 tables) hérite par ailleurs de la clé primaire de la table t_animaux.
Alors oui, cela imposera des jointures mais vous aurez un modèle propre et vous ne serez pas à traîner partout des 'IS NULL' ou des 'IS NOT NULL' dans vos requêtes.
Bien cordialement.