0

マイテーブル

create table i (a json)

入れる:

insert into i values ('[[1300,[{"id":5,"time":1451423706048,"zon":0,"name":"AMighty","loc":"ny"},[[3405,0,1000],[35,0,1000],[3401,0,10000],[2541,0,1000]]]]]' )

2541以降のフィールドを抽出したいのですが、その場合答えは0です

私のJsonをクエリするとき:

select json_array_elements(a) from I

1 行だけを返します。

4

1 に答える 1

2

必要な要素を取得するには、ネストされたすべての配列を調べる必要があります。

WITH i(a) AS ( VALUES
  ('[[1300,[{"id":5,"time":1451423706048,"zon":0,"name":"AMighty","loc":"ny"},[[3405,0,1000],[35,0,1000],[3401,0,10000],[2541,0,1000]]]]]'::JSON)
)
SELECT
  array_element->1->1->3 as array_you_look_for,
  array_element->1->1->3->1 as inner_array_element
FROM i,
  json_array_elements(a) as array_element;

出力:

 array_you_look_for | inner_array_element 
--------------------+---------------------
 [2541,0,1000]      | 0
(1 row)
于 2016-01-07T12:39:51.567 に答える