Heim >Datenbank >MySQL-Tutorial >Wie verkette ich Feldwerte in PostgreSQL für mehrere Datensätze mit einer einzigen ID?
Verketten von Feldwerten in PostgreSQL für mehrere Datensätze und eine einzelne ID
Viele Datenbankanwendungen erfordern die Kombination mehrerer Werte, die sich auf einen einzelnen Bezeichner beziehen, in einer einzigen Verbindungszeichenfolge. Dieser Vorgang ist besonders nützlich, wenn eine Tabelle mit mehreren Datensätzen pro eindeutiger ID abgefragt wird.
GROUP_CONCAT-Funktion in MySQL
In MySQL bietet die Funktion GROUP_CONCAT einen direkten Weg, dieses Ziel zu erreichen. Allerdings ist die Funktion GROUP_CONCAT nicht direkt in PostgreSQL verfügbar.
PostgreSQL-Äquivalent von GROUP_CONCAT
In PostgreSQL ist die string_agg-Funktion das Äquivalent von MySQLs GROUP_CONCAT. Mit dieser Funktion können Sie Zeichenfolgen verketten und dabei ein Trennzeichen (z. B. ein Komma) angeben, um die verketteten Werte zu trennen.
Beispiel: PostgreSQL-Abfrage mit string_agg
Betrachten Sie die Beispieltabelle in der ursprünglichen Frage:
id | some_column |
---|---|
TM67 | 4 |
TM67 | 9 |
TM67 | 72 |
TM99 | 2 |
TM99 | 3 |
Die folgende PostgreSQL-Abfrage kann verwendet werden, um die Werte von some_column-Spalten für jede eindeutige ID zu verketten:
<code class="language-sql">SELECT id, string_agg(some_column::text, ',') AS values FROM the_table GROUP BY id;</code>
Ergebnis:
id | values |
---|---|
TM67 | 4,9,72 |
TM99 | 2,3 |
Diese Abfrage ruft eine Zeile für jede eindeutige ID ab und verkettet die Werte von some_column-Spalten zu einer einzigen Zeichenfolge mit Kommas als Trennzeichen.
Hinweis: Die string_agg-Funktion wurde in PostgreSQL Version 9.0 eingeführt. Für frühere Versionen von PostgreSQL können Sie alternativ die Erweiterungen „generate_series“ oder „group_concat_agg“ verwenden, um die gleiche Funktionalität zu erreichen. Die Typkonvertierung von some_column::text
stellt sicher, dass some_column
auch dann korrekt verkettet wird, wenn es sich nicht um einen Texttyp handelt.
Das obige ist der detaillierte Inhalt vonWie verkette ich Feldwerte in PostgreSQL für mehrere Datensätze mit einer einzigen ID?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!