我在Postgres有一个表,结构如下。
| 身份证|姓名|对象(jsonb)|
| - ------|- ------|- ------|
| 1个|第一|[{"name":"a", value:"1", "param":{}}, {"name":"b", "value":"55", "param":{}}, {"name":"c", "value":"234", "param":{}}]
|
| 第二章|秒|[{"name":"b", "value":"22", "param":{}}, {"name":"c", "value":"24", "param":{}}]
|
| 三个|三度|[{"name":"c", "value":"345", "param":{}}] |
|
| 四个|向前|[{"name":"a", "value":"123", "param":{}}, {"name":"b", "value":"456", "param":{}}]
|
我试图编写一个查询,它返回所有行,但只返回"objects"列中对象的子集。
如果我只想要"name"="b"的元素,下面的输出将是答案
| 身份证|姓名|对象(jsonb)|
| - ------|- ------|- ------|
| 1个|第一|[{"name":"b", "value":"55", "param":{}}]
|
| 第二章|秒|[{"name":"b", "value":"22", "param":{}}]
|
| 三个|三度|[]
|
| 四个|向前|[{"name":"b", "value":"456", "param":{}}]
|
如果我只需要"name"="b"或"name"="c"的元素,下面的输出将是答案
| 身份证|姓名|对象(jsonb)|
| - ------|- ------|- ------|
| 1个|第一|[{"name":"b", "value":"55", "param":{}}, {"name":"c", "value":"234", "param":{}}]
|
| 第二章|秒|[{"name":"b", "value":"22", "param":{}}, {"name":"c", "value":"24", "param":{}}]
|
| 三个|三度|[{"name":"c", "value":"345", "param":{}}]
|
| 四个|向前|x1米11米1x|
2条答案
按热度按时间eyh26e7m1#
从此处JSON functions使用
jsonb_path_query
:更新第二例:
z3yyvxxp2#
提取元素、过滤器、聚合