2016-12-06 5 views
1

Wie machen Sie WHERE != "something" in Ecto? Ich bin mit PostgresElixir + Ecto: Einfach WO! = Abfrage

Das ist, was ich habe (das nicht funktioniert):

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

+2

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

+0

bitte geben Sie mir alle Ihre Elixier Wissen @Dogbert – Edmund

+0

Es gibt eine Referenz der verschiedenen Booleschen Operatoren hier: http://elixir-lang.org/getting-started/basic-operators.html. Ich bin mir nicht sicher, warum du es nicht selbst versucht hast! –

Antwort

2

Hier finden Sie die Ecto-Abfrage Makros verwenden müssen, um diese Abfrage zu erstellen. Für den „Ausdruck“ basierte Syntax, können Sie eine Liste als ersten Parameter mit den Namen übergeben Sie die Tabellen binden möchten mit:

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

Für weitere Informationen, besuchen Sie das documentation of where.

+0

gegeben Ich habe das Ergebnis von 'u = User |> wo ([u], u.id! = 444) MyApp.Repo.all', weißt du, wie ich den ersten aus dieser Liste holen würde? – Edmund

+2

Sie können '|> hd' verwenden oder' [u | _] = Benutzer |> ... 'aber wenn du nur das erste Ergebnis willst, solltest du' where (...) |> limit (1) |> Repo.one' machen. – Dogbert

+0

würden Sie bei jeder Änderung wissen, wo nicht in [Array] zu tun? http://stackoverflow.com/questions/41005307/elixir-ecto-how-to-do-where-not-in-array @Dogbert – Edmund

Verwandte Themen