我的问题特定于rails + postgres hstore数据类型。
WHERE IN [1,2, 3]
或等效的Model.where(data: [1,2,3])
适用于常规列,但不适用于hstore。
我有一个hstore列(比如info
),我想查询具有特定键和任何一个给定值的行。
例如:要查找所有在hstore列中键为“author”且值为“ABC”的书籍,以下查询可以正常工作:
Book.where("info @> hstore(:key, :value)", key: "author", value: "ABC")
但是我需要一个查询,它返回一个密钥为'author'的记录,以及['ABC','XYZ','PQRS','DFG']中的任何一个值。
有什么建议吗?
答案 0 :(得分:1)
也许试试:
Book.where("(info -> :key) IN (:values)", key: 'author', values: ['ABC', 'XYZ'])
但是,@>
有索引支持,而这不会使用任何索引。