【问题标题】:How to query a particular object from a json array in PostgreSQL如何从 PostgreSQL 中的 json 数组中查询特定对象
【发布时间】:2019-04-08 22:51:55
【问题描述】:

我有一个名为 flow_flowrun 的表和一个名为 EVENTS 的列下的 json 对象数组,如下所示:

[{"msg": {"urn": "tel:+1238948372", "text": "Would you like to JOIN, reply now", "uuid": "34567a-a634-4c1d-a0a5-56788", "channel": {"name": "*56789", "uuid": "b5bc6e6c-ad18-493f-b28f-744627e739f7"}}, "type": "msg_created", "step_uuid": "a4fg6hh-9419-43a4-tgdv-39a4edc78d69", "created_on": "2015-09-21T06:10:12.217880+00:00"}]

[{"msg": {"urn": "tel:+1294472830", "text": "Hello, how do you feel today", "uuid": "533457-693d-4d67-833c-0d53e7e0ff98", "channel": {"name": "*12345", "uuid": "b5bc6e6c-ad18-493f-b28f-744627e739f7"}}, "type": "msg_created", "step_uuid": "4556763-1f5b-40a4-a29d-5fb1103f4666", "created_on": "2014-02-08T06:04:57.823739+00:00"}]

我想运行一个只显示“文本”输出的查询。 所以输出应该是这样的:

消息 想加入吗,马上回复 你好,今天感觉如何

等等……

我尝试了以下方法,但没有成功:

SELECT jsonb_array_elements(fr.events->'msg'->'text') elem
FROM flows_flowrun fr 
SELECT fr.EVENTS ->>'text'
from flows_flowrun fr

感谢期待。

当我运行上述查询时,我没有得到任何结果。

【问题讨论】:

    标签: sql arrays json postgresql jsonb


    【解决方案1】:

    您需要先扩展数组并访问其上的成员:

    SELECT jsonb_array_elements(events)->'msg'->>'text'
      FROM flows_flowrun fr
    

    【讨论】:

      猜你喜欢
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      • 2020-04-14
      • 1970-01-01
      • 2015-07-18
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      相关资源
      最近更新 更多