テーブルt
にvalue
というJSONB列があり、JSONのこれらのBLOBの内側に文字列のリストであるtags
フィールドがあるとします。Postgres jsonb配列:空でない交差のクエリ
"foo"
または"bar"
というタグが付けられたこれらのJSONブロブのいずれかのクエリを作成したいと思います。私はこのようなクエリのいくつかの並べ替えを書きたい
value
---------------------
{"tags": ["other"]}
{"tags": ["foo", "quux"]}
{"tags": ["baz", "bar"]}
{"tags": ["bar", "foo"]}
{"tags": []}
:
ので、テーブルのデータは次のようになりますと仮定
結果がされるようにselect value from t where value->'tags' NONEMPTY_INTERSECTION '["foo", "bar"]'
:
value
-----------------------
{"tags": ["foo", "quux"]}
{"tags": ["baz", "bar"]}
{"tags": ["bar", "foo"]}
これを達成するための実際のクエリはありますか?高速である可能性があります。
可能な複製を(http://stackoverflow.com/questions/39480863/querying-jsonb-with-array-fields) – Agzam