2016-11-16 3 views
0

Ich habe eine jsonb Säule (gppermission) in meiner Tabelle doc, die Daten enthält alsSuche nach einem JSON-Array in jsonb Spaltendaten als JSON-Array in PosgreSQL mit

[{"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 "}] 

ich in der diese Daten suchen müssen für

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

Ich versuchte die folgende Abfrage. aber keine Ergebnisse :(

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

Saw Query for array elements inside JSON type aber es hat ein 'Objekt' Referenz, meine Json-Array unterscheidet

Bitte helfen ...

+0

Mögliches Duplikat [Abfrage für Array-Elemente innerhalb JSON type] (http://stackoverflow.com/questions/22736742/query-for-array-elements-inside-json- Art) – cske

Antwort

0

Ich habe eine Lösung, kann dies nicht sein die einzige Lösung, dies zu tun.

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'