1
我正在運行PostgreSQL 9.3。我有一個名爲「model」的列「json」(而不是 jsonb)。 「模型」列的內容如下所示:在PostgreSQL中查詢針對JSON列的數組遏制9.3
{ "section": { "colors": ["red", "blue", "green"] } }
是否可以查詢,其中包含model -> section -> colors
「藍色」行?
我正在運行PostgreSQL 9.3。我有一個名爲「model」的列「json」(而不是 jsonb)。 「模型」列的內容如下所示:在PostgreSQL中查詢針對JSON列的數組遏制9.3
{ "section": { "colors": ["red", "blue", "green"] } }
是否可以查詢,其中包含model -> section -> colors
「藍色」行?
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"';
這是正確的答案。我最終遷移到9.4版。 – tambler