RealNerds

MySQL operacje arytmetyczne, a null

written by Maciej Górecki on 2019-10-01

Jak wiadomo wartość NULL w bazach danych jest szczególna, oznacza jej brak. Mniej powszechną wiedzą jest to, że użycie NULLa w porównywaniu przy pomocy "=, >, <" nie zwróci nam true lub false ,tylko zawsze wartość NULL. Dlatego też, żeby uzyskać rekordy, dla których nie wypełniono pola, możemy użyć sformułowania: WHERE pole IS NULL.

Na przykład, żeby uzyskać użytkowników którzy nie mają wypełnionego numeru telefonu nie możemy zrobić:


SELECT * FROM users WHERE phone = NULL;

Tylko musimy skorzystać ze sformułowania IS NULL:


SELECT * FROM users WHERE phone IS NULL;

Źródła