2016-03-24 7 views

答えて

7

それはdocumentationに言われているようあなたは?dataトップレベルキーを確認することができます。

例えばJSON列からすべてのネストされたオブジェクト内のすべてのキーを確認する

はもちろんこれは非常に効率的ではありません再帰CTE

select * from details 
where 'city' in (
    WITH RECURSIVE t(k,j) as (
     select jsonb_object_keys(details.data), details.data 
    UNION ALL 
     select jsonb_object_keys(t.j->t.k), t.j->t.k 
     FROM t WHERE jsonb_typeof(t.j->t.k) = 'object' 
    ) 
    select k from t 
); 

が必要です。

-1

あなたは、いくつかのJSON値が「街のテキストを含むことができ、テキストとLIKE

SELECT * 
FROM "details" 
WHERE "data"::text LIKE '%"city":%' 
+0

とキーを検索するために、あなたのJSONに変換することができます。あなたはどのようにこのキー名またはテキストだけを区別していますか? –

関連する問題