Ich habe eine Spalte Adresse, Typ jsonb[]
, in Tabelle Häuser, die so etwas wie dies ein Array enthält suchen:Postgres 9.5 Abfrage passende JSON Property innerhalb Array
"{
"{\"zip\": \"13203-1807\",
\"city\": \"\SYRACUSE\",
\"state\": \"NEW YORK\",
\"street\": \"\999 PROSPECT AVENUE\"}"
}"
Ich versuche, alle Häuser abfragen wo die Adressstadt "Syrakus" ist; so weit ich habe:
SELECT * FROM Houses WHERE address -> 'city' = 'SYRACUSE'
Und diesen Fehler erhalten:
No operator matches the given name and argument type(s). You might need to add explicit type casts.
ich durch PG Official Documentation on JSON Functions and Operators ausgesehen haben, sowie mehrere Antworten auf Stackoverflow ohne Erfolg.
Ist Ihre Spalte Typ 'Jsonb' oder' Jsonb [] '? Der '->' Operator wird mit ersterem funktionieren, aber letzteres ist ein Postgresql Array und benötigt Arrayoperatoren. – jmelesky
'jsonb []' @jmelesky – Will
Aus Neugier, warum? JSON kann bereits Arrays enthalten, daher ist mir nicht klar, warum Sie ein Postgresql-Array von JSON-Objekten über einem JSON-Array von JSON-Objekten speichern möchten. – jmelesky