Problem:
Chcesz znaleźć rekordy z NULL w kolumnie.
Przykład:
Nasza baza danych zawiera tabelę o nazwie children
z danymi w czterech kolumnach:id
, first_name
, middle_name
i last_name
.
id | imię | drugie imię | nazwisko |
---|---|---|---|
1 | Jan | Karol | Jackson |
2 | Tomek | NULL | Thomson |
3 | Lisa | Alicja | NULL |
4 | Anna | NULL | Kowalski |
Znajdźmy identyfikator, imię i nazwisko dzieci bez drugiego imienia (NULL w kolumnie middle_name
). Używamy do tego operatora IS NULL.
Rozwiązanie:
SELECT id, first_name, last_name FROM children WHERE middle_name IS NULL;
Oto wynik:
id | imię | nazwisko |
---|---|---|
2 | Tomek | Thomson |
4 | Anna | Kowalski |
Zwraca tylko rekordy z NULL w middle_name
, więc Tom i Anne są obecni, ale nie John i Lisa, którzy mają drugie imiona.
Dyskusja:
Użyj IS NULL
operator w warunku z WHERE, aby znaleźć rekordy z NULL w kolumnie. Oczywiście możesz również użyć dowolnego wyrażenia zamiast nazwy kolumny i sprawdzić, czy zwraca ona NULL. Nie potrzeba nic więcej niż nazwa kolumny i operator IS NULL (w naszym przykładzie middle_name IS NULL
). Umieść ten warunek w klauzuli WHERE, aby filtrować wiersze (w naszym przykładzie WHERE middle_name IS NULL
). Jeśli warunek jest spełniony, kolumna przechowuje NULL i zwracany jest ten wiersz. Powyższe zapytanie zwraca tylko dwa rekordy z dziećmi Tom i Anne, które nie mają drugiego imienia, więc kolumna middle_name
przechowuje NULL.