Ich versuche, Zeilen in meiner Postgresql-Datenbank zu finden, wo eine JSON-Spalte einen bestimmten Text enthält.Postgresql: Suche Zeile über Text in JSON Array von Objekten
Reihe Schema:
id | name | subitems
-----------------------------------------------------------------
1 | "item 1" | [{name: 'Subitem A'}, {name: 'Subitem B'}]
2 | "item 2" | [{name: 'Subitem C'}, {name: 'Subitem D'}]
Mein wollte Abfrage führen 'Unterpunkt B'
id | name | subitems
-----------------------------------------------------------------
1 | "item 1" | [{name: 'Subitem A'}, {name: 'Subitem B'}]
ich zum ersten subitem wie folgt suchen: I
WHERE lower(subitems->0->>\'name\') LIKE '%subitem a%'
Aber offensichtlich finde keinen anderen Unterpunkt als den ersten.
kann ich alle Namen meiner Subitems erhalten:
SELECT lower(json_array_elements(subitems)->>'name') FROM ...
Aber es gibt mir zwei Reihen mit den Namen:
lower
----------------------------------------------------------------
"subitem a"
"subitem b"
Was ich brauche eigentlich 1 Zeile das Element enthält, ist.
Kann mir jemand sagen, wie man das macht?
Was Sie suchen ist ein wenig unklar - können Sie uns einige Beispieldaten und auch ein Beispiel für die gewünschte Ausgabe geben? – jmelesky
Danke für deine Antwort, ich habe meine Frage aktualisiert – Jesse