在PostsonSQL中搜索jsonb列中的json数组,数据为json数组

时间:2016-11-16 07:48:12

标签: postgresql postgresql-9.4 jsonb

我的表doc中有一个jsonb列(gppermission),其中包含数据

[{"Deny": "true", "Allow": "false", "GroupName": "Group 1 "}, 
 {"Deny": "false", "Allow": "true", "GroupName": "Group 2 "}, 
 {"Deny": "false", "Allow": "true", "GroupName": "Group 3 "}, 
 {"Deny": "true", "Allow": "false", "GroupName": "Group 4 "}]

我需要在此数据中搜索

{"Deny": "false", "Allow": "true", "GroupName": "Group 3 "}

我尝试了以下查询。但没有结果:(

select * from doc as dc ,jsonb_array_elements(dc.gppermission) as e(gp) where e.gp = '{"Deny":"false","Allow":"true","GroupName":"Group 3"}'

看到Query for array elements inside JSON type,但它有一个'对象'参考,我的json数组是不同的

请帮忙......

1 个答案:

答案 0 :(得分:0)

我得到了一个解决方案,这可能不是解决这个问题的唯一方法。

select * from doc as dc ,jsonb_array_elements(dc.gppermission) as e(gp) where e.gp ->>'Deny'='false' and e.gp ->>'Allow'='true' and e.gp ->>'GroupName'='Group 1'