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.