gpt4 book ai didi

json - 如何在postgres中查询嵌套json中的对象

转载 作者:行者123 更新时间:2023-11-29 12:50:21 25 4
gpt4 key购买 nike

假设我有一个名为 users 的表,其中包含名为 attrsjsonb 列,其值如下:

{
"uuid5": {
"label": "Email",
"value": "example@test.com.tw"
},
"uuid6": {
"label": "Last Name ",
"value": "Yang"
}
}

这是一个单行:

"attrs": { "uuid5": { "label": "Email", "value": "example@test.com.tw" }, "uuid6": { "label": "Last Name ", "value": "Yang" }

如您所见,有 uniq 键 uuid5uuid6 等等。

如何获取label = 'Email' value = 'example@test.com.tw'的用户?

postgres docs关于 json 函数,有一个函数叫做 jsonb_each它返回一组 JSON 对象键/值对。但我找不到基于此编写查询的方法。

最佳答案

您需要 jsonb_each 来遍历 attrs 列中的所有条目。它将返回键/值对,其中键是 uuid,条目是您要检查的实际 JSON 结构。您可以将其与 EXISTS 条件结合使用:

select u.*
from users u
where exists (select *
from jsonb_each(u.attrs) as t(uid,entry)
where t.entry ->> 'label' = 'Email'
and t.entry ->> 'value' = 'example@test.com.tw')

在线示例:https://rextester.com/SHN95362

关于json - 如何在postgres中查询嵌套json中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55512016/

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