我有一个名为“ Test”的表,其中包含两个字段“ qnId”和“ Answers”。’qnId’存储一个uuid,’Answers’是一个jsonb数组,大致如下所示:
[{ "user" : "1", "ans" : "some text" }, { "user" : "3", "ans": "some text"}]
我该如何使用value来检索of"ans"的"user"值3。如何使用普通的SQL查询检索值
"ans"
"user"
3
演示:db <>小提琴
您可以jsonb_array_elements()用来将数组元素扩展为每一行。之后,您可以使用->>运算符(文档)过滤正确的元素:
jsonb_array_elements()
->>
SELECT uuid, elements ->> 'ans' FROM mytable, jsonb_array_elements(answers) elements WHERE elements ->> 'user' = '3'