一尘不染

如何从PostgreSQL中的jsonb获取特定对象?

sql

我有一个名为“ Test”的表,其中包含两个字段“ qnId”和“
Answers”。’qnId’存储一个uuid,’Answers’是一个jsonb数组,大致如下所示:

[{ "user" : "1", "ans" : "some text" }, { "user" : "3", "ans": "some text"}]

我该如何使用value来检索of"ans""user"3。如何使用普通的SQL查询检索值


阅读 373

收藏
2021-03-08

共1个答案

一尘不染

演示:db
<>小提琴

您可以jsonb_array_elements()用来将数组元素扩展为每一行。之后,您可以使用->>运算符(文档)过滤正确的元素:

SELECT
    uuid,
    elements ->> 'ans'
FROM
    mytable,
    jsonb_array_elements(answers) elements
WHERE 
    elements ->> 'user' = '3'
2021-03-08