当前位置: 首页 > 面试题库 >

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

闾丘昊然
2023-03-14
问题内容

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

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

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


问题答案:

演示:db
<>小提琴

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

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


 类似资料:
  • 我得到了响应从REST API到响应对象后,通过RestAsared API调用。 响应主体是json,我想从中获取特定的键值吗? 以下是代码 如何在字符串中获取特定的键值?

  • 如何从数组中只得到没有课程名称的分数: 这是我的测试课 这是我的分级课 现在,如果我调用一个方法:gradeList.getAllGrades(),它给我:[Physics 10,LT 4,Math 7],我需要的是:10,4,7

  • } 我想从这个json对象中获取值。 我在下面试过了,但没有成功。

  • 我对编程很陌生,我想做一个程序,用不同的变量发出12张卡片,然后将每张完整的卡片存储在某个地方供以后使用: N=Number(卡片上的数字,可以从1到3) C=Color(卡片是什么颜色,绿色、蓝色或红色) F=Form(有3种形式:蛇、时钟和圆) R=Fill(可以是满的、半的或空的) 这是我到目前为止得到的:

  • 我有一个这样的回应json, 我想显示userId=3的详细信息,但没有为我提供获取详细信息的endpoint。所以我想从这个endpoint得到细节。 应用程序内: 我已经显示了仪表板的数据(使用recyclerview/list)