Problem:
Du ønsker at finde poster med NULL i en kolonne.
Eksempel:
Vores database har en tabel ved navn children
med data i fire kolonner:id
, first_name
, middle_name
og last_name
.
id | fornavn | mellemnavn | efternavn |
---|---|---|---|
1 | John | Carl | Jackson |
2 | Tom | NULL | Thomson |
3 | Lisa | Alice | NULL |
4 | Anne | NULL | Smith |
Lad os finde id, fornavn og efternavn på børn uden mellemnavn (NULL i kolonne middle_name
). Vi bruger operatoren IS NULL til dette.
Løsning:
SELECT id, first_name, last_name FROM children WHERE middle_name IS NULL;
Her er resultatet:
id | fornavn | efternavn |
---|---|---|
2 | Tom | Thomson |
4 | Anne | Smith |
Dette returnerer kun poster med NULL i middle_name
, så Tom og Anne er til stede, men ikke John og Lisa, der har mellemnavne.
Diskussion:
Brug IS NULL
operator i en tilstand med WHERE for at finde poster med NULL i en kolonne. Du kan selvfølgelig også bruge et hvilket som helst udtryk i stedet for et navn på en kolonne og tjekke om det returnerer NULL. Der er ikke behov for mere end navnet på en kolonne og operatoren IS NULL (i vores eksempel er middle_name IS NULL
). Indsæt denne betingelse i WHERE-sætningen for at filtrere rækker (i vores eksempel, WHERE middle_name IS NULL
). Hvis betingelsen er sand, gemmer kolonnen en NULL, og denne række returneres. Ovenfor returnerer forespørgslen kun to poster med børnene Tom og Anne, som ikke har mellemnavne, så kolonnen middle_name
lagrer NULL.