首页 文章

如何在PostgreSQL中对jsonb列类型使用“LIKE”查询?

提问于
浏览
4

对于PostgreSQL数据库中的hstore列,我知道我可以在Ruby on Rails中使用类似的“LIKE”查询来搜索包含某个字符串的名称:

Product.where("hstore_data -> 'author' LIKE '%billy%'")

我尝试了jsonb列类型,但得到了这个错误:

ActiveRecord :: StatementInvalid:PG :: UndefinedFunction:ERROR:运算符不存在:jsonb ~~ unknown HINT:没有运算符匹配给定的名称和参数类型 . 您可能需要添加显式类型转换 . :SELECT“products” . * FROM“products”WHERE(jsonb_data - >'author'LIKE'%billy%')

有没有办法正确使用“LIKE”的jsonb列类型?

1 回答

  • 9

    你可以试试这个

    希望你有

    product.jsonb_data = {
          author: "billynando"
       }
    

    然后

    Product.where("jsonb_data ->> :key LIKE :value",
      key: "author", value: "%billy%"
    )
    

    更多here

相关问题