Problem:
Du vill hitta poster med NULL i en kolumn.
Exempel:
Vår databas har en tabell som heter children
med data i fyra kolumner:id
, first_name
, middle_name
och last_name
.
id | förnamn | mellannamn | efternamn |
---|---|---|---|
1 | John | Carl | Jackson |
2 | Tom | NULL | Thomson |
3 | Lisa | Alice | NULL |
4 | Anne | NULL | Smith |
Låt oss hitta id, förnamn och efternamn för barn utan mellannamn (NULL i kolumnen middle_name
). Vi använder operatorn IS NULL för detta.
Lösning:
SELECT id, first_name, last_name FROM children WHERE middle_name IS NULL;
Här är resultatet:
id | förnamn | efternamn |
---|---|---|
2 | Tom | Thomson |
4 | Anne | Smith |
Detta returnerar endast poster med NULL i middle_name
, så Tom och Anne är närvarande, men inte John och Lisa som har mellannamn.
Diskussion:
Använd IS NULL
operatorn i ett tillstånd med WHERE för att hitta poster med NULL i en kolumn. Naturligtvis kan du också använda vilket uttryck som helst istället för ett namn på en kolumn och kontrollera om det returnerar NULL. Inget mer än namnet på en kolumn och operatorn IS NULL behövs (i vårt exempel, middle_name IS NULL
). Sätt detta villkor i WHERE-satsen för att filtrera rader (i vårt exempel, WHERE middle_name IS NULL
). Om villkoret är sant, lagrar kolumnen en NULL och denna rad returneras. Ovan returnerar frågan endast två poster med barnen Tom och Anne, som inte har mellannamn, så kolumnen middle_name
lagrar NULL.