[英]How to get json value from json array column in postgresql
我有一列,其类型是字符变化的。
它包含一个 json 数组。
像下面这样的东西。
[
{"name":"Peter", "information":{"tel":"120391083", "address":"xxx"}},
{"name":"Jane", "information":{"tel":"12302131093", "address":"ooo"}},
{"name":"Pat", "information":{"tel":"123098", "address":"zzz"}}
]
我怎样才能得到 json object 这个名字是 Pat 的地址值?
我使用了 -> 和 ->> 运算符,但它显示运算符不存在。
我正在使用 pdadmin 4 和 postgreSQL 版本是 13.2
我不确定 output 正是您要查找的内容。
如果你想获得完整的information
部分,你可以使用这个:
select jsonb_path_query_first(the_column::jsonb, '$[*] ? (@.name == "Pat").information')
from the_table;
如果你只有address
键的值,你可以使用:
select jsonb_path_query_first(the_column::jsonb, '$[*] ? (@.name == "Pat").information') ->> 'address'
from the_table;
在任何情况下,从长远来看,您都应该将列的数据类型更改为jsonb
。 不要(误)为此使用varchar
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.