Product在PostgreSQL 9.6中有一个jsonb列attributes,包含attributes列的以下条目。
记录1:

[
  {    "KEY1": "VALUE1",    "KEY2": "VALUE2"  },
  {    "KEY1": "VALUE3",    "KEY3": "VALUE4"  },
]

记录2:
[
  {    "KEY1": "VALUE1",    "KEY2": "VALUE2"  },
  {    "KEY3": "VALUE3",    "KEY4": "VALUE4"  },
]

如何过滤包含KEY4键的记录?
给定的jsonb操作符here没有提供jsonb数组的详细信息。

最佳答案

对于这样的桌子:

create table test_table
(
  id serial not null,
  data jsonb
);

使用您的数据
SELECT id, arr_elem
FROM test_table AS tt, jsonb_array_elements(
    (
      SELECT data
      FROM test_table
      WHERE id = tt.id
    )
) AS arr_elem
WHERE arr_elem#>'{KEY4}' IS NOT NULL

基本上是解包数组并将其与源表连接起来。
结果:
身份证,阿伦
2,{“KEY3”:“VALUE3”,“KEY4”:“VALUE4”}
SQLFiddle

关于postgresql - PostgreSQL JSONB数组-查找 key 是否存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46490113/

10-14 02:06