2016-12-06 6 views
1

Ecto에서 WHERE != "something"을 어떻게합니까? 나는 (작동하지 않는)이 내가 가진 무엇 포스트 그레스Elixir + Ecto : Simple 어디에서! = query

을 사용하고 있습니다 :

u = User |> Ecto.Query.where(id: not 444) |> MyApp.Repo.one

+2

'|> 여기서 ([u], u.id! = 444)'? – Dogbert

+0

제게 모든 엘릭서 지식을주세요 @Dogbert – Edmund

+0

여기에 다양한 부울 연산자에 대한 참조가 있습니다 : http://elixir-lang.org/getting-started/basic-operators.html. 왜 당신이'! ='처음 시도하지 않았는지 나는 확신하지 못합니다. –

답변

2

당신은이 쿼리를 구축하기 위해 체외 쿼리 매크로를 사용해야합니다. 더 많은 정보를 위해

User |> where([u], u.id != 444) 

documentation of where을 확인하십시오 "표현"을 기반으로 구문, 당신은 당신이 테이블을 결합하고자하는 이름을 가진 첫 번째 매개 변수로 목록을 전달할 수 있습니다.

+0

주어진'u = User |> where ([u], u.id! = 444) MyApp.Repo.all'의 결과를 어떻게 알 수 있습니까? – Edmund

+2

'|> hd'를 사용하거나'[u | _] = User |> ...'하지만 첫 번째 결과 만 원한다면'(...) |> limit (1) |> Repo.one'을 수행해야합니다. – Dogbert

+0

어떤 변경을하면 [배열]에없는 방법을 알 수 있습니까? http://stackoverflow.com/questions/41005307/elixir-ecto-how-to-do-where-not-in-array @Dogbert – Edmund