gpt4 book ai didi

json - Postgres : Parsing JSON data in sql

转载 作者:行者123 更新时间:2023-11-29 13:24:04 46 4
gpt4 key购买 nike

我正在尝试解析以下 json 数据并在 where 子句下使用它。

Basic":{  
"General":{
"Field1":1234,
"Field2":"6.86"
},
"Stream 0":{
"Type":"LDAP",
"Field4":"LALA1"
},
"Stream 1":{
"Type":"KERBEROS",
"Field4":"LALA2"
},
"Stream 2":{
"Type":"SAML",
"Field4":"LALA3"
},

我可以像这样到达 Type 标签。
table.column_json::json->'基本'->'流 0'->'类型'

Stream# 的顺序未定义,Stream 标签可以超过 3 个。

我如何遍历每个流并查找 Type: 是否为 "SAML" 然后 Field4 值为 "LALA3"

最佳答案

由于您要搜索多个不同的键,因此需要“解压”K/V 对,然后进行字符串匹配:

SELECT DISTINCT t.*
FROM table t, json_each(t.column_json::json->'Basic') j(k, v)
WHERE j.k LIKE 'Stream%'
AND j.v->>'Type' = 'SAML'
AND j.v->>'Field4' = 'LALA3';

请注意,json_each() 函数是 PG9.3+。

关于json - Postgres : Parsing JSON data in sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36943389/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com