它看起来像 a simple feature即将解决此问题,但 Phoenix Ecto还没有。同时在 Ecto 中进行 where-or 查询的解决方法是什么?
例如:
from(u in User,
left_join: up in assoc(u, :user_projects),
# does not work
where: up.project_id != ^project.id OR up.project_id IS NULL,
select: {u.id, u.username})
最佳答案
我相信你误会了什么or_where
会做——你想要的可以用一个简单的 or
来完成和 is_nil
:
where: up.project_id != ^project.id or is_nil(up.project_id)
什么
or_where
确实可以让您加入多个where: expr
在带有 OR
的 Ecto 查询中而不是 AND
.在当前版本的 Ecto (2.0) 中,没有直接的方法可以做到这一点——Ecto 加入所有 where
带有 AND
的表达式.
关于phoenix-framework - Ecto:哪里 - 或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40365454/