我正在尝试将Ecto Repo.get_by与多个子句一起使用,并且在查找语法示例时遇到了麻烦。我需要查询数据库中的一个或两个字段匹配的位置,因此子句之间的“或”条件。我不知道这是否有可能。
Repo.get_by(User, [username: username, email: username], prefix: :accounts)
答案 0 :(得分:5)
Repo.get_by
不允许OR
插入条款。您需要使用from
编写完整的查询,然后调用Repo.one
:
from(u in User, where: u.username == ^username or u.email == ^username)
|> Repo.one
要在此查询中添加前缀,您可以执行this。