gpt4 book ai didi

postgresql - 在postgresql中查询jsonb

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

我的 postgresql 数据库表中有一个名为 authors 的 jsonb 列,其中包含如下数据:

[{"id":134,"nameKey":"smith, john"},
{"id":112,"nameKey":"bats, billy"}]

如何返回表中 jsonb 作者列包含 ID 为 112 的作者的所有行?

我需要类似的东西

select * from record
where authors -> id = 2

我还需要通过名称获取:

select * from gardner_record
where authors -> nameKey like '%john%'

我发现 postgresql jsonb 文档几乎无法理解。当我尝试按 ID 选择时,它说我缺少类型转换。当我尝试按名称选择时,它说该列不存在。

我应该如何查询这个列?

最佳答案

使用jsonb_array_elements

select t.*
from t cross join jsonb_array_elements(authors) as j
where j->>'id' = '112'



select t.*
from t cross join jsonb_array_elements(authors) as j
where j->>'nameKey' like '%john%'

DEMO

关于postgresql - 在postgresql中查询jsonb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56724384/

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