ホーム>source

people という名前の列がありますそしてそれはタイプですJSONB

ここにサンプルデータがあります(1列):

<前>ウィズウィズ

{"addresses": [{"street":"cubuklu", "valid?": "true"} {"street":"beykoz", "valid?":"false"} {"street":"kavacik", "valid?": "true"} ]} のある通りのリストを取得したい本当 値すべての行

結果:

<前>ウィズウィズ

配列のリストを表示できましたが、値をフィルタリングできませんでした。

valid?
あなたの答え
  • 解決した方法 # 1

    配列のネストを解除して、結果にフィルターをかける必要があります。

    <前>ウィズウィズ select adr.address ->> 'street' from the_table t cross join jsonb_array_elements(t.people -> 'addresses') as adr(address) where adr.address ->> 'valid?' = 'true'

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ c - シングルショットでのメモリコピーのベンチマーク