我在Postgres 9.4 db中的字段中有一些JSON,我想找到给定名称是特定值的行,其中字段名为model
,JSON结构如下:
{
"resourceType": "Person",
"id": "8a7b72b1-49ec-43e5-bd21-bc62674d9875",
"name": [
{
"family": [
"NEWMAN"
],
"given": [
"JOHN"
]
}
]
}
所以我尝试了这个:SELECT * FROM current WHERE model->'name' @> '{"given":["JOHN"]}';
(以及其他各种猜测),但这与上述数据不符。我该怎么做?
答案 0 :(得分:2)
select t.*
from current t,
jsonb_array_elements(model->'name') names
where names->'given' ? 'JOHN'