В таблице users поле phone бывает NULL и бывает пустой строкой. Какое утверждение верное?

AПустая строка и NULL тождественны, и phone IS NULL отбирает оба варианта
Bphone IS NOT NULL оставляет только строки со значением phone = ''
Cphone = '' находит и пустые строки, и NULL через неявное приведение типов
Dphone IS NULL отбирает только NULL, а phone = '' лишь пустые строки
Правильный ответ. NULL и пустая строка — разные значения: IS NULL ловит только NULL, а = '' — только пустую строку.

Разбор

NULL означает отсутствие/неизвестность значения, а пустая строка — это конкретное значение «строка длины 0». Условие phone IS NULL выберет только пропуски, а условие phone = '' выберет только пустые строки и не вернёт NULL, потому что сравнение с NULL даёт UNKNOWN. Если нужно найти оба варианта, используют, например, phone IS NULL OR phone = ''.

Проверь себя · 1/3разбор после ответа
В таблице sessions 5 строк. Значения utm_source: 'google', NULL, 'email', NULL, NULL. Чему равны COUNT(*) и COUNT(utm_source)?
Тренировать SQL в Telegram

Ещё вопросы по теме «Выражения и NULL»