Ecto Repo.get_by具有多个“或”子句

时间:2018-08-31 11:29:10

标签: elixir ecto

我正在尝试将Ecto Repo.get_by与多个子句一起使用,并且在查找语法示例时遇到了麻烦。我需要查询数据库中的一个或两个字段匹配的位置,因此子句之间的“或”条件。我不知道这是否有可能。

Repo.get_by(User, [username: username, email: username], prefix: :accounts) 

1 个答案:

答案 0 :(得分:5)

Repo.get_by不允许OR插入条款。您需要使用from编写完整的查询,然后调用Repo.one

from(u in User, where: u.username == ^username or u.email == ^username)
|> Repo.one

要在此查询中添加前缀,您可以执行this