Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在postgreSQL中选择json记录_Json_Postgresql_Select_Nosql - Fatal编程技术网

在postgreSQL中选择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

也许这很傻,但我不能在postgreSQL中编写一个简单的SELECT语句。假设我的表有两列,一列是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}}}
我想写一个选择,它显示了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