Проблем:
Искате да намерите записи с NULL в колона.
Пример:
Нашата база данни има таблица с име children
с данни в четири колони:id
, first_name
, middle_name
и last_name
.
id | first_name | междинно_име | фамилно_име |
---|---|---|---|
1 | Джон | Карл | Джаксън |
2 | Том | NULL | Томсън |
3 | Лиза | Алиса | NULL |
4 | Ан | NULL | Смит |
Нека намерим идентификатора, собственото и фамилното име на деца без средно име (NULL в колона middle_name
). За това използваме оператора IS NULL.
Решение:
SELECT id, first_name, last_name FROM children WHERE middle_name IS NULL;
Ето резултата:
id | first_name | фамилно_име |
---|---|---|
2 | Том | Томсън |
4 | Ан | Смит |
Това връща само записи с NULL в middle_name
, така че Том и Ан присъстват, но не Джон и Лиза, които имат средни имена.
Дискусия:
Използвайте IS NULL
оператор в условие с WHERE за намиране на записи с NULL в колона. Разбира се, можете също да използвате произволен израз вместо име на колона и да проверите дали връща NULL. Не е необходимо нищо повече от името на колона и оператора IS NULL (в нашия пример middle_name IS NULL
). Поставете това условие в клаузата WHERE, за да филтрирате редове (в нашия пример WHERE middle_name IS NULL
). Ако условието е вярно, колоната съхранява NULL и този ред се връща. По-горе заявката връща само два записа с деца Том и Ан, които нямат средни имена, така че колоната middle_name
съхранява NULL.