ich ein jsonb Feld in PostgreSQL mit dem folgenden Inhalt haben:PostgreSQL json (b) - Wandelt String Array & Updates Feld
{ "object": { "urls": "A;B;C" } }
Was ich tun möchte, ist Update der Wert urls
innerhalb des Objekts und transformieren die Zeichenfolge mit Semikolon getrennten Werten in ein JSON-Array. So sollte das Ergebnis wie folgt aussehen:
{ "object" : { "urls": ["A", "B", "C"] } }
ich herausgefunden habe, wie ein JSON-Array zu erhalten.
Mitto_json(string_to_array(replace((json->'object'->'urls')::text, '"',''), ';'));
gibt mir ["A", "B", "C"]
(ich denke, es sollte, es zu tun einen besseren Weg, ohne die Umwandlung json -> Text -> Array. -> json Vorschläge sind willkommen)
Aber Wie aktualisiere ich jetzt das Feld urls
mit dem JSON-Array? Wahrscheinlich muss ich jsonb_set
verwenden?
Es funktionierte gut. Ich musste einfach 'WHERE jdata -> 'object' hinzufügen -> 'urls' IST NICHT NULL '. Sonst hatten diese Zeilen null als json (oder jdata in Ihrem Fall). – mxlse