【问题标题】:Rails postgres hstore: query for a specific key with any of the given valuesRails postgres hstore:查询具有任何给定值的特定键
【发布时间】:2016-10-23 00:37:41
【问题描述】:

我的问题是特定于 rails+postgres hstore 数据类型的。

WHERE IN [1,2, 3] 或 rails 等效的 Model.where(data: [1,2,3]) 适用于常规列,但不适用于 hstore。

我有一个 hstore 列(比如 info),我想查询具有特定键和任何给定值的行。

例如:要在 hstore 列中查找键为“作者”且值为“ABC”的所有书籍,以下查询可以正常工作:

Book.where("info @> hstore(:key, :value)", key: "author", value: "ABC")

但我需要一个查询,它返回键为“作者”和 ['ABC'、'XYZ'、'PQRS'、'DFG'] 中的任何一个值的记录。

有什么建议吗?

【问题讨论】:

    标签: ruby-on-rails postgresql rails-postgresql hstore


    【解决方案1】:

    不妨试试:

    Book.where("(info -> :key) IN (:values)", key: 'author', values: ['ABC', 'XYZ'])
    

    不过,@> 支持索引,但不会使用任何索引。

    【讨论】:

    • 谢谢。这确实有效,但没有您所说的任何索引支持。
    猜你喜欢
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 2014-04-14
    • 2016-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多