2
我有一些json类似于下面的json存储在postgres json列中。我试图查询它来识别一些错误输入的数据。我基本上在寻找房子描述与房屋编号相同的地址。我无法弄清楚如何去做。如何查询postgres json列中的嵌套数组?
{
"timestamp": "2014-10-23T16:15:28+01:00",
"schools": [
{
"school_id": "1",
"addresses": [
{
"town": "Birmingham",
"house_description": "1",
"street_name": "Parklands",
"addr_id": "4",
"postcode": "B5 8KL",
"house_no": "1",
"address_type": "UK"
},
{
"town": "Plymouth",
"house_description": "Flat a",
"street_name": "Fore Street",
"addr_id": "2",
"postcode": "PL9 8AY",
"house_no": "15",
"address_type": "UK"
}
]
},
{
"school_id": "2",
"addresses": [
{
"town": "Coventry",
"street_name": "Shipley Way",
"addr_id": "19",
"postcode": "CV8 3DL",
"house_no": "662",
"address_type": "UK"
}
]
}
]
}
我写了这个SQL将找到的数据相匹配,其中:
select *
FROM title_register_data
where address_data->'schools'->0->'addresses'->0->>'house_description'=
address_data->'schools'->0->'addresses'->0->>'house_no'
这显然只适用于第一个学校的第一个地址。有没有办法查询每所学校的所有地址?
优秀谢谢你。那就是我所追求的。我做了微调,并使用了json_array_elements,因为它不是jsonb列,但原理相同。 – spannerj