如何在postgresql中访问Json / Hstore元素

时间:2017-10-25 18:10:08

标签: sql json postgresql postgresql-9.3 hstore

我的表格中有以下数据

STUDENT_INFO

Column Data type
------------------
ID number
STUDENT_DATA hstore

以下是数据

ID STUDENT_DATA
1        "config"=>"{"env": "TEST", "student": "10508"}", "payload"=>"{"Score_id": "201814", "Course": ["40359", "40360"]}"

从上面的数据我想选择课程

我的查询是:

select ID,(hstore_to_json(STUDENT_DATA))->'payload'->>'course' 
from STUDENT_INFO 
limit 1

我收到以下错误: -

  

错误:无法从标量中提取元素

有人可以帮我写一下这个查询吗?

1 个答案:

答案 0 :(得分:0)

你可以试试这个

select ID,((hstore_to_json(STUDENT_DATA ))-> 'payload')::json#>'{Course}' from STUDENT_INFO LIMIT 1

我在下面的查询中测试了它确实有效

SELECT (select '{"Score_id" : 201814, "Course" : [40359, 40360]}'::json)::json#>'{Course}'

你也可以从

获取参考

https://www.postgresql.org/docs/current/static/functions-json.html

你可以考虑下面那种

的例子
SELECT '{"a":[1,2,3],"b":[4,5,6]}'::json#>'{b,2}'

SELECT '{"a":[1,2,3],"b":[4,5,6]}'::json#>>'{a,2}'