我有一个 JSONB 字段值:
{
"status":200,
"response":{
"page":1,
"limit":10,
"total":4,
"orders":[
{
"id":40201
},
{
"id":40111
}
]
}
}
如何查询 id=40201 的订单数组对象?
我正在尝试查询具有 response->orders->[id: 40201] 的所有行
最佳答案
如果您知道这是数组中的第一个对象(从零开始!):
SELECT
yourjson -> 'response' -> 'orders' -> 0
如果没有,您必须使用 jsonb_array_elements()
将数组扩展为每个元素一行,并过滤每一行:
SELECT
elems.value
FROM
yourtable,
jsonb_array_elements(yourjson -> 'response' -> 'orders') elems
WHERE
elems ->> 'id' = '40201'
关于sql - 在 Postgres 中查询 JSONB 中的复杂数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57115511/