2017-01-11 6 views
1

Ich habe folgende jsonb Array-Spalte (Tags)Postgresql - verschiedene Werte von jsonb Array

|name | tags (jsonb) | 
-------------------------------- 
|john | [ "foo", "bar" ] 
|smith| [ "bar", "bat" ] 
|adam | [ "foo", "dot" ] 

Wie die unterschiedlichen Tags erhalten, wie folgt [ "foo", "bar", "Fledermaus", " Punkt "]?

+0

Ich glaube, du meintest '[" foo "," bar "," bat "," dot "]', du hast zweimal "bar" geschrieben. – fpietka

+0

@fpietka Ja, vielen Dank, dass du das gezeigt hast! – Yans

+0

hast du meine antwort versucht – e4c5

Antwort

1

Dies wird Ihr spezielles Problem lösen.

SELECT DISTINCT tag FROM 
    (SELECT name, JSONB_ARRAY_ELEMENTS(tags) as b FROM my_table) AS foo; 

aber Sie haben ein größeres Problem. Das Speichern von Tags ist ein Fehler, der viel zu oft wiederholt wird. Sie sollten Ihren Tisch normalisieren. Bitte siehe Django JSONField inside ArrayField

+0

Danke für den Vorschlag, ich habe das Modell normalisiert und sieht viel sauberer zu arbeiten und zu pflegen. – Yans

+0

froh, dass ich geholfen habe – e4c5

Verwandte Themen