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

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

如何用"ans"值检索"user"3值。
如何使用普通SQL查询检索值

最佳答案

demo:db<>fiddle
可以使用jsonb_array_elements()将数组元素分别展开为一行。之后,您可以使用->>运算符(documentation)筛选正确的元素:

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

关于sql - 如何从PostgreSQL中的jsonb获取特定对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57339793/

10-13 05:20