Problema:
Vuoi trovare i record con NULL in una colonna.
Esempio:
Il nostro database ha una tabella denominata children
con i dati in quattro colonne:id
, first_name
, middle_name
e last_name
.
id | nome | secondo_nome | cognome |
---|---|---|---|
1 | Giovanni | Carlo | Jackson |
2 | Tom | NULL | Thomson |
3 | Lisa | Alice | NULLO |
4 | Anna | NULL | Fabio |
Troviamo l'id, il nome e il cognome dei bambini senza un secondo nome (NULL nella colonna middle_name
). Usiamo l'operatore IS NULL per questo.
Soluzione:
SELECT id, first_name, last_name FROM children WHERE middle_name IS NULL;
Ecco il risultato:
id | nome | cognome |
---|---|---|
2 | Tom | Thomson |
4 | Anna | Fabio |
Questo restituisce solo i record con NULL in middle_name
, quindi Tom e Anne sono presenti, ma non John e Lisa che hanno un secondo nome.
Discussione:
Usa IS NULL
operatore in una condizione con WHERE per trovare i record con NULL in una colonna. Ovviamente puoi anche usare qualsiasi espressione invece del nome di una colonna e controllare se restituisce NULL. Non è necessario altro che il nome di una colonna e l'operatore IS NULL (nel nostro esempio, middle_name IS NULL
). Inserisci questa condizione nella clausola WHERE per filtrare le righe (nel nostro esempio, WHERE middle_name IS NULL
). Se la condizione è vera, la colonna memorizza un NULL e viene restituita questa riga. Sopra, la query restituisce solo due record con i figli Tom e Anne, che non hanno un secondo nome, quindi la colonna middle_name
memorizza NULL.