2017-11-10 3 views
1

私はPostgreSQL 9.3を実行しています。私は型 "json"(ではなくjsonb)の "model"という名前の列を持っています。 「モデル」欄の内容は、次のようになります。PostgreSQL 9.3のJSONカラムに対する配列の包含の問い合わせ

{ "section": { "colors": ["red", "blue", "green"] } }

それはmodel -> section -> colorsは「青」が含まれる行を照会することは可能ですか?

答えて

1

9.3にjson比較演算子はありません。関数json_array_elements()を呼び出して、関数の結果をtextにキャストすることができます。 Distinct on場合に使用されるJSON配列が重複含む要素:

select distinct on (id) t.* 
from my_table t, 
json_array_elements(model->'section'->'colors') 
where value::text = '"blue"'; 

SqlFiddle

+0

これは正解です。私はバージョン9.4に移行しました。 – tambler

関連する問題