从......中选择 - 基于JSON格式的值

时间:2013-07-10 12:46:39

标签: sql json postgresql postgresql-9.3

假设我有一个包含几个常见列的数据库表,例如姓名,性别,年龄......

此外,我还有一个使用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

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:8)

如果我正确理解了手册,您可以使用->->>运算符访问JSON字段。查询看起来像:

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