也许它非常愚蠢,但我不能在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
我该怎么做?感谢
答案 0 :(得分:2)
首先,您的JSON格式不正确。你可能意思是{"bob":{"grades":[60, 58, 72]}}
您要查找的实际运算符为->
,例如
select '{"bob":{"grades":[60, 58, 72]}}'::jsonb->'bob';
{“成绩”:[60,58,72]}