SELECT array_to_string(array(...), ...) in MySQL
Klara
- datenbank
0 Vinzenz Mai0 Klara
Hi
in PostgreSQL 7.4 verwende ich z.B. folgendes Statement
SELECT array_to_string(array(...), ...) ...
wie kann ich soetwas in MySQL 5.0.51a nachbilden?
Danke!
Klara
Hallo Klara,
Du solltest Dein Problem klarer beschreiben ;-)
in PostgreSQL 7.4 verwende ich z.B. folgendes Statement
SELECT array_to_string(array(...), ...) ...
wofür? Beispiel? Was ist das gewünschte Ergebnis?
Warum verlinkst Du nicht die PostgreSQL-Doku dazu?
wie kann ich soetwas in MySQL 5.0.51a nachbilden?
Inwiefern nachbilden? Wie sollten Deine Tabellen aussehen? Wie sollte das Ergebnis der Abfrage aussehen? Kann es sein, dass Du ein anderes Tabellendesign benötigst? Darf es sein, dass Du ein anderes Tabellendesign verwendest?
Welche Stringfunktionen von MySQL hast Du Dir angeschaut?
Was hast Du in der MySQL-Doku zu Arrays gefunden?
Was hast Du in der MySQL-Doku zu Datentypen gefunden?
Du hast das gleiche nichtssagende Posting abgesetzt wie vor ein paar Tagen.
Du solltest Dich nicht über mangelende Rückmeldungen wundern! Deine Frage ist einerseits sehr speziell und andererseits fehlt nahezu jede relevante Information.
Lobenswert ist die genaue Versionsangabe der verwendeten Datenbankmanagementsysteme.
Fragende Grüße
Vinzenz
Hi Vinzenz,
Du solltest Dein Problem klarer beschreiben ;-)
ok versuche ich das mal :-)
PostgreSQL Doku
+---------------------------------+---------------------------------------------------------------------------------------+----------------------------------------+-----------+
| array_to_string(anyarray, text) | concatenates array elements using provided delimiter, returning NULL for NULL inputs | array_to_string(array[1, 2, 3], '~^~') | 1~^~2~^~3 |
+---------------------------------+---------------------------------------------------------------------------------------+----------------------------------------+-----------+
+-----------+ +-----------+
| Tabelle 1 | | Tabelle 2 |
+-----------+ +-----------+
| Spalte1 | | Spalte1 |
+-----------+ +-----------+
| SpalteN | | SpalteN |
+-----------+ +-----------+
Tabelle 1
+-----------+-----------+
| Spalte1 | SpalteN |
+-----------+-----------+
| Wert1 | ... |
+-----------+-----------+
Tabelle 2
+-----------+-----------+
| Spalte1 | SpalteN |
+-----------+-----------+
| Wert1 | ... |
+-----------+-----------+
| Wert2 | ... |
+-----------+-----------+
| Wert3 | ... |
+-----------+-----------+
| Wert4 | ... |
+-----------+-----------+
SELECT Tabelle1.Spalte1, array_to_string(array(SELECT Tabelle2.Spalte1 FROM Tabelle2, ' ,')) AS test FROM Tabelle1;
Als Ergebnis hätte ich gerne
Ergebnis
+-----------+----------------------------+
| Spalte1 | test |
+-----------+----------------------------+
| Wert1 | Wert1, Wert2, Wert3, Wert4 |
+-----------+----------------------------+
ich hoffe, dass das jetzt verständlicher ist :-)
Klara
Hallo,
PostgreSQL Doku
Tabelle 1
| Spalte1 | SpalteN |
+-----------+-----------+
| Wert1 | ... |Tabelle 2
| Spalte1 | SpalteN |
+-----------+-----------+
| Wert1 | ... |
| Wert2 | ... |
| Wert3 | ... |
| Wert4 | ... |
hmm, auch hier leider wieder völlig nichtssagende Angaben. Warum? Warum nur?
Allgemeine Spaltenlisten für Tabellen sind so schrecklich wenig hilfreich. Warum nicht einfach einmal ganz konkrete Tabellen mit konkreten Tabellennamen, völlig normalen richtigen Spaltennamen und ein paar Beispieldatensätze mit Daten, die genau so sein könnten.
Zwei überhaupt nicht miteinander verbundene Tabellen ...
Als Ergebnis hätte ich gerne
Ergebnis
| Spalte1 | test |
+-----------+----------------------------+
| Wert1 | Wert1, Wert2, Wert3, Wert4 |
Das Ergebnis ist mit einem Cross-Join und der Aggregatsfunktion GROUP_CONCAT ganz einfach zu erzielen:
SELECT
t1.Spalte1,
[link:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat@title=GROUP_CONCAT](t2.Spalte1 SEPARATOR ', ' AS test
FROM tabelle Tabelle1 t1, Tabelle2 t2
GROUP BY t1.Spalte1
Es wundert mich nicht, wenn dies kaum weiterhilft.
Freundliche Grüße
Vinzenz