2013-07-10 40 views
4

比方說,我有幾個常見的欄目,如姓名,性別,年齡,數據庫表...從選擇... - 基於JSON格式的值

而且我使用有一個附加列JSON數據類型(從Postgres的9.2)任意長度和任意字段JSON:

{"occupation":"football"} 

{"occupation":"football", "hair-colour":"black"} 

{"hair-style":"curly"} 

裏使用Postgres 9.3的新功能,我想與職業=例如足球返回所有行。

事情是這樣的僞:select * from table where json_field.occupation = football

是否有這樣做的一種方式?

+1

重複:http://stackoverflow.com/questions/10560394/how-do-i-query-using-fields-inside-the-new-postgresql-json-datatype – nif

+1

我已經看到了這一點。我打算避免在UPDATE I中提到的自定義函數。答案中的結構似乎與我的不同。 – Filip

+0

重複問題中答案的海報使用'json_to_elements'函數從數組中創建多行。所以這個結構和你的每行都包含一個JSON對象是一樣的。並沒有使用自定義功能。解決方案與您接受的完全相同。 – nif

回答

8

如果我正確理解手冊,則可以使用->->>運算符訪問JSON字段。該查詢將如下所示:

SELECT * 
FROM your_table 
WHERE json_field ->> 'occupation' = 'football'; 
+0

這樣做!謝謝。 – Filip