在postgreSQL中选择json记录
也许这很傻,但我不能在postgreSQL中编写一个简单的SELECT语句。假设我的表有两列,一列是id,另一列是doc,这是一个json字段在postgreSQL中选择json记录,json,postgresql,select,nosql,Json,Postgresql,Select,Nosql,也许这很傻,但我不能在postgreSQL中编写一个简单的SELECT语句。假设我的表有两列,一列是id,另一列是doc,这是一个json字段 ----------------------- | id | doc | ----------------------- | 1 | {"bob":{"grades":{"math":60, "physics":58, "art":72}}} | 2 | {"bob":{"grades":{"math":69, "physics
-----------------------
| 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}}}
我想写一个选择,它显示了bob的数据,如下所示:
-----------------------
{"grades":{"math":60, "physics":58, "art":72}}
{"grades":{"math":69, "physics":98, "art":75}}
每当我写某事时,我都会犯错误,比如:
ERROR: cannot extract element from a scalar
我该怎么做?谢谢首先,您的JSON格式不正确。你的意思可能是
{“bob”:{“grades”:[60,58,72]}
例如,您要查找的实际操作员是->
select '{"bob":{"grades":[60, 58, 72]}}'::jsonb->'bob';
{“等级”:[60,58,72]}
“sth”不是SQL查询。你试过什么?是什么让你犯了这样的错误?谢谢@Sami,但分数是一本真正的字典,为了简洁起见,我把它删减了。从my_表中写入
选择my_表->doc::json->'b'是真的吗
?如果它已经在json/jsonb列中,您只需要使用从my_表中选择doc->'Bob'
和从my_表中选择doc->'Bob',上述错误就会出现again@ehsantoghian请出示您的表格结构。列类型是json/jsonb还是纯文本?已解决。这个问题是由于我想要存储json记录时出现的。示例记录保存为文本而不是Json。谢谢@SamiKuhmonen