内のすべてのJSONフィールドのキーの配列を取得し、このフィールドは、JSONのタイプは次の例のように値を持っている私はユーザーと呼ばれるテーブルがあり、テーブル内の友人と呼ばれる分野があるPostgreSQLの
{"blockList": {"199": {"date": 1453197190, "status": 1}, "215": {"date": 1459325611, "status": 1}, "219": {"date": 1454244074, "status": 1}, "225": {"date": 1453981312, "status": 1}, "229": {"date": 1459327685, "status": 1}}, "followers": {"211": {"date": 1452503369}, "219": {"date": 1452764627}, "334": {"date": 1456396375}}, "following": {"215": {"date": 1459325619}, "219": {"date": 1453622322}, "226": {"date": 1454244887}, "229": {"date": 1459327691}}, "friendList": {"213": {"date": 1453622410, "type": 2, "status": 1}, "214": {"date": 1452763643, "status": 1}, "215": {"date": 1455606872, "type": 2, "status": 2}, "218": {"date": 1453280047, "status": 1}, "219": {"date": 1453291227, "status": 2}, "221": {"date": 1453622410, "type": 2, "status": 1}, "224": {"date": 1453380152, "type": 2, "status": 1}, "225": {"date": 1453709357, "type": 2, "status": 2}, "226": {"date": 1454244088, "type": 2, "status": 1}, "229": {"date": 1454326745, "type": 2, "status": 2}}}
このレコードには、ブロックされたユーザーのオブジェクトを格納するblockListオブジェクトがあります。私は必要なもの は、(アレイ内のすべてのオブジェクトキーを返す)この
["199", "215", "219", "225", "229"]
のようなすべてのブロックリストのキー私はそれを行うためにplpgsqlが関数を記述することができますどのように任意のヘルプの配列を返すのですか? 私はpsotgresqlの初心者ですから、助けてください。
ERROR:関数json_object_keys(jsonb)は LINE 4が存在しません: - :機能なしが指定された名前と引数の型と一致しないSELECT json_object_keys ^ ヒントF(友人> 'ブロックリストを')。明示的な型キャストを追加する必要があるかもしれません。 –
'jsonb'を使っているなら' jsonb_object_keys'関数を使う必要があります。 – Marth
おっと、私はarray_agg、素晴らしい答えを忘れました。 – Imran