【问题标题】:Filter on json-object properties in postgreSQL在 postgreSQL 中过滤 json-object 属性
【发布时间】:2022-01-15 01:28:36
【问题描述】:

我有一个名为 groups 的表,其中有一个字段“group_users”。

在每个组中,group_users 都以 json 格式存储,如下所示:

{
  "user1": {
     "name":"...",
     "notifications": true,
  }
  "user2": {
     ...
  }
}

如何获取某个用户所属的每个组?

提前致谢:)

【问题讨论】:

  • 使用适当的规范化数据模型会容易得多。
  • 您使用的是哪个 Postgres 版本?
  • 虽然您可以在 PostgreSQL 中使用 json 并不意味着您拥有
  • @a_horse_with_no_name 好的,谢谢你的评论,会调查的。我使用的是第 13 版

标签: sql json postgresql object


【解决方案1】:

使用 Postgres 13,您可以使用 JSON 路径表达式:

select *
from groups
where group_users @@ 'strict $.**.name == "Someuser"'

这假设group_users 是一个jsonb 列,它应该是。如果不是,您需要将其转换为group_users::jsonb

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 2012-06-20
    • 2020-02-13
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多