Я пишу запрос в Фениксе
Нет такого понятия, как «запрос в Феникс ».Запросы [в этом контексте] - это общение с базой данных, и Phoenix в принципе не заботится о базе данных.У кого-то может быть идеальный проект Phoenix , у которого нет базы данных.
Вы запрашиваете Ecto
, используя Ecto.Query
.
например where(query, [x], x is not true)
Говоря о базе данных, такой запрос имеет небольшой смысл.Базы данных, естественно, не имеют понятия falsey
, они различают false
и NULL
и даже синтаксис SQL кричит как говорящий это.Для нахождения false
нужно сделать:
WHERE x = FALSE -- or WHERE x = 0
и для нахождения NULL
s
WHERE x IS NULL
Тем не менее, если вы обнаружите, что ищете , то ни FALSE, ниNULL в базе данных, у вас есть проблемы с дизайном базы данных, которые определенно укусят вас позже.
OTOH, в самом Elixir вопрос совершенно верен.У нас есть два falsey
члена: атомы false
и nil
.Все остальное считается значением truthy
.
Чтобы проверить это, следует использовать Kernel.!/1
if !x, do: IO.puts("#{x.inspect} is truthy")