Klara: SELECT array_to_string(array(...), ...) in MySQL

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

  1. 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

    1. 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

      1. 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