簡體   English   中英

從jsonb字段數組獲取數據

[英]Get data from jsonb field array

我在PostgreSQL數據庫中具有以下架構:

CREATE TABLE survey_results (
    id integer NOT NULL,
    raw jsonb DEFAULT '{}'::jsonb,
    created_at timestamp without time zone,
    updated_at timestamp without time zone  
);

INSERT INTO survey_results (id, raw, created_at, updated_at)
    VALUES (1, '{ "slides": [{"id": "1", "name": "Test", "finished_at": 1517421628092}, {"id": "2", "name": "Test", "finished_at": 1517421894736}]}', now(), now());

我想從raw['slides']獲取數據。 我想查詢返回每個raw['slides'] idraw['slides'] finished_at 因此查詢結果應如下所示:

id  finished_at
1 1517421628092
2 1517421894736

這是sqlfiddle可以嘗試的:

http://sqlfiddle.com/#!17/ae504

如何在PostgreSQL中做到這一點?

您需要取消嵌套數組,然后可以訪問每個元素:

select s.slide ->> 'id' as id,
       s.slide ->> 'finished_at' as finished_at
from survey_results, jsonb_array_elements(raw -> 'slides') as s (slide)

http://sqlfiddle.com/#!17/ae504/80

有關更多詳細信息,請參見手冊中的JSON函數和運算符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM