我有一个名为“测试”的表,其中包含两个字段“qnId”和“答案”。 'qnId' 存储一个 uuid,'Answers' 是一个 jsonb 数组,大致如下所示:
[{ "user" : "1", "ans" : "some text" }, { "user" : "3", "ans": "some text"}]
如何检索 “user”
的 “ans”
的值为 3
。
如何使用普通 SQL 查询检索值
最佳答案
尝试这样的事情:
select
x ->> 'ans' as user_3_ans
from
jsonb_array_elements('[{ "user" : "1", "ans" : "some text 1" }, { "user" : "3", "ans": "some text 3"}]'::jsonb) as x
where
x ->> 'user' = '3'
相同,但来自表格:
with
table1 as (
select
1 as id,
'[{ "user" : "1", "ans" : "some text 1" }, { "user" : "3", "ans": "some text 3"}]'::jsonb as answers
)
select
id,
answers,
el ->> 'ans' as user_3_ans
from
( select
id,
answers,
jsonb_array_elements(answers) as el
from
table1) as x
where
el ->> 'user' = '3'
关于sql - 如何从 PostgreSQL 中的 jsonb 获取特定对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57339793/