在postgreSQL中选择一个json记录

时间:2015-07-20 14:29:29

标签: json postgresql select nosql

也许它非常愚蠢,但我不能在postgreSQL中编写一个简单的 SELECT 语句。假设我有2列的表,一个是id和doc,它是一个json字段。

-----------------------
| id |      doc       |
-----------------------
| 1  | {"bob":{"grades":{"math":60, "physics":58, "art":72}}}
| 2  | {"bob":{"grades":{"math":69, "physics":98, "art":75}}}
| 3  | {"jack":{"grades":{"math":30, "physics":40}}}

我想写一个 SELECT ,它会显示 bob 这样的数据:

-----------------------
{"grades":{"math":60, "physics":58, "art":72}}
{"grades":{"math":69, "physics":98, "art":75}}

每当我写信时,我都会犯错:

ERROR:  cannot extract element from a scalar

我该怎么做?感谢

1 个答案:

答案 0 :(得分:2)

首先,您的JSON格式不正确。你可能意思是{"bob":{"grades":[60, 58, 72]}}

您要查找的实际运算符为->,例如

select '{"bob":{"grades":[60, 58, 72]}}'::jsonb->'bob';
  

{“成绩”:[60,58,72]}