一尘不染

从``-基于JSON格式的值中进行选择

sql

假设我有一个数据库表,其中包含几个常用列,例如姓名,性别,年龄,…

此外,我还有一列使用JSON数据类型(可从Postgres 9.2获得)的列,该列具有JSON中的任意长度和任意字段:

{"occupation":"football"}

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

{"hair-style":"curly"}

使用Postgres 9.3的新功能,我想返回例如 职业= football的 所有行。

像这样的伪东西: select * from table where json_field.occupation = football

有没有办法做到这一点?


阅读 225

收藏
2021-05-23

共1个答案

一尘不染

如果我正确理解了手册,则可以使用->->>运算符访问JSON字段。查询如下所示:

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