检查PostgreSQL 9.5中对象json内的数组中的值

时间:2017-09-26 13:10:10

标签: arrays json postgresql

我有一个包含数组和其他属性的json对象。

我需要为表格的每一行检查数组的第一个值。

这是json的一个例子

{"objectID2":342,"objectID1":46,"objectType":["Demand","Entity"]}

所以我需要例如使用ObjectType [0] ='Demand'和objectId1 = 46来获取所有行。

这是表colums

id |  relationName | content

内容列包含json。

1 个答案:

答案 0 :(得分:1)

只是查询它们?像:

t=# with table_name(id, rn, content) as (values(1,null,'{"objectID2":342,"objectID1":46,"objectType":["Demand","Entity"]}'::json))
select * From table_name
where content->'objectType'->>0 = 'Demand' and content->>'objectID1' = '46';
 id | rn |                              content
----+----+-------------------------------------------------------------------
  1 |    | {"objectID2":342,"objectID1":46,"objectType":["Demand","Entity"]}
(1 row)