假设我有一个包含几个常见列的数据库表,例如姓名,性别,年龄......
此外,我还有一个使用JSON数据类型(可从Postgres 9.2获得)的附加列,其中包含JSON中的任意长度和任意字段:
{"occupation":"football"}
{"occupation":"football", "hair-colour":"black"}
{"hair-style":"curly"}
使用Postgres 9.3的新功能我希望返回所有行 occupation = football 。
像这样的伪:select * from table where json_field.occupation = football
有没有办法做到这一点?
答案 0 :(得分:8)
如果我正确理解了手册,您可以使用->
和->>
运算符访问JSON字段。查询看起来像:
SELECT *
FROM your_table
WHERE json_field ->> 'occupation' = 'football';