Verilen ildeki gönderiler nasıl bulunur?Ecto ile WHERE IN array cümlesi nasıl oluşturulur?
Post.where({ id: [1, 2]})
# SELECT * FROM posts WHERE id IN (1, 2)
Verilen ildeki gönderiler nasıl bulunur?Ecto ile WHERE IN array cümlesi nasıl oluşturulur?
Post.where({ id: [1, 2]})
# SELECT * FROM posts WHERE id IN (1, 2)
aşağıdaki çalışması gerekir: Rails
posts = Post |> where(id: [1, 2]) |> Repo.all
Örnek:
Bu
çalışmıyorposts = Post |> where([p], p.id in [1, 2]) |> Repo.all
Kabul Cevap bana undefined function p/0
verir, bu yüzden geldi Buna:
from(p in Post, where: p.id in [1, 2]) |> Repo.all
Diğer posterler hem "anahtar kelimeler" hem de "ifadeler" kalıplarını gerekli kıldı, ancak yorum yapmak istedim ve değerleri listeden enterpolasyon yaparsanız değişkenden önce ^
operatörüne ihtiyacınız olduğunu belirtmek istedim. Bunlardan birini denemeden önce makroları içeren modülü (makroların farklı derleme ihtiyaçları olduğu için özel) almanız da gerekir. Bu tüm 2.1.1, btw ile. Yani:
import Ecto.Query
...
id_list = [1,2,4,5,6]
# "expressions"
Post
|> where([p], p.id in ^id_list)
# "keywords"
from(p in Post, where: p.id in ^id_list)
İade 'tanımlanmamış işlev p denis.peplin @/0' –
yapmanız' ithalat Ecto.Query' var. (Repo.app'ı yapmak için Algo benim aliap.Repo'yu unutma) – dcarneiro