Вступить в клуб →
лёгкаявопросPostgreSQL, ORM и оптимизация запросов

Запрос активных пользователей возвращает ноль строк, хотя они есть

Удалённые пользователи помечаются датой в deleted_at, у активных там NULL.

SELECT id, email FROM users WHERE deleted_at = NULL;

В таблице тысячи активных пользователей, а запрос не возвращает ни одной строки. Почему?

  • Сравнение с NULL через = даёт не TRUE, а NULL — строка не проходит фильтр
  • NULL в колонке с датой хранится как нулевая дата, а не как NULL
  • Для колонок timestamp сравнение с NULL запрещено и молча игнорируется
  • Нужно писать NULL в кавычках: deleted_at = 'NULL'

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела