我的JSON數據是這樣的:jsonb像嵌套對象查詢陣列中的
[{
"id": 1,
"payload": {
"location": "NY",
"details": [{
"name": "cafe",
"cuisine": "mexican"
},
{
"name": "foody",
"cuisine": "italian"
}
]
}
}, {
"id": 2,
"payload": {
"location": "NY",
"details": [{
"name": "mbar",
"cuisine": "mexican"
},
{
"name": "fdy",
"cuisine": "italian"
}
]
}
}]
給定文本爲「foo」我要回所有具有此子元組。但我無法弄清楚如何編寫相同的查詢。
我跟着this related answer但無法弄清楚如何去做LIKE
。
這就是我現在的工作:
SELECT r.res->>'name' AS feature_name, d.details::text
FROM restaurants r
, LATERAL (SELECT ARRAY (
SELECT * FROM json_populate_recordset(null::foo, r.res#>'{payload,
details}')
)
) AS d(details)
WHERE d.details @> '{cafe}';
不是傳遞的cafe
我想通過ca
並獲得相匹配的文本,結果整個文本。
是的。但我有ID,頂層元組的名稱。這就是我要返回的東西(具有substr的id)。感謝您的觀察。 –