Problème :
Vous souhaitez rechercher des enregistrements avec NULL dans une colonne.
Exemple :
Notre base de données a une table nommée children
avec des données sur quatre colonnes :id
, first_name
, middle_name
, et last_name
.
identifiant | prénom | deuxième_prénom | nom_de_famille |
---|---|---|---|
1 | Jean | Carl | Jackson |
2 | Tom | NULL | Thomson |
3 | Lisa | Alice | NULL |
4 | Anne | NULL | Smith |
Trouvons l'identifiant, le prénom et le nom des enfants sans deuxième prénom (NULL dans la colonne middle_name
). Nous utilisons l'opérateur IS NULL pour cela.
Solution :
SELECT id, first_name, last_name FROM children WHERE middle_name IS NULL;
Voici le résultat :
identifiant | prénom | nom_de_famille |
---|---|---|
2 | Tom | Thomson |
4 | Anne | Smith |
Cela ne renvoie que les enregistrements avec NULL dans middle_name
, donc Tom et Anne sont présents, mais pas John et Lisa qui ont des prénoms.
Discussion :
Utilisez le IS NULL
opérateur dans une condition avec WHERE pour rechercher des enregistrements avec NULL dans une colonne. Bien sûr, vous pouvez également utiliser n'importe quelle expression au lieu d'un nom de colonne et vérifier si elle renvoie NULL. Rien de plus que le nom d'une colonne et l'opérateur IS NULL est nécessaire (dans notre exemple, middle_name IS NULL
). Mettez cette condition dans la clause WHERE pour filtrer les lignes (dans notre exemple, WHERE middle_name IS NULL
). Si la condition est vraie, la colonne stocke un NULL et cette ligne est renvoyée. Ci-dessus, la requête ne renvoie que deux enregistrements avec les enfants Tom et Anne, qui n'ont pas de deuxième prénom, donc la colonne middle_name
stocke NULL.