【发布时间】:2016-01-08 17:57:04
【问题描述】:
我想使用 postgres IN 运算符(使用 Ecto 库)查询 jsonb 字段
此代码使用简单的 = 运算符:
from a in query, where: fragment("?->>'format' = ?", a.properties, "foo")
但我无法做出任何这些尝试:
from a in query, where: fragment("?->>'format' IN ?", a.properties, ["foo", "bar"])
from a in query, where: fragment("?->>'format' IN (?)", a.properties, ["foo", "bar"])
from a in query, where: fragment("?->>'format' IN ?", a.properties, "('foo', 'bar')"])
有什么想法吗?
【问题讨论】:
-
您看到的确切错误/问题是什么?
-
一个(丑陋的)似乎可行的事情是预先生成术语列表,然后将它们放入查询中:
list = Enum.join(["foo", "bar"], ","); from a in query, where: fragment("?->>'format' IN (?)", a.properties, ^list])
标签: elixir phoenix-framework ecto