繁体   English   中英

如何从postgresql中的json数组列获取json值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM