Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Group_concat()

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Group_concat()

    Hallo!

    Ich benutze MySQL 4.0.20 auf RedHat Linux 9.0 und suche ein workaround für die Funktion GROUP_CONCAT(), die erst in der Version 4.1 vorhanden ist.

    Will die 4.1 nicht auf meinem Server einsetzten, weils erst ne Beta ist. Oder kann mir jemand aus Erfahrung sagen, dass diese Version schon zufriedenstellend läuft?


    Wäre super, wenn mir jemand helfen könnte!

    Danke schon mal im Vorruas!
    Gruß, de Paddi

  • #2
    Re: GROUP_CONCAT()

    Zitat von Patrick_Fries
    Ich benutze MySQL 4.0.20 auf RedHat Linux 9.0 und suche ein workaround für die Funktion GROUP_CONCAT(), die erst in der Version 4.1 vorhanden ist.
    WorkAround nennt sich PHP ... ^^
    Hier kannst du schlaten und walten wie du wilst. Aber innerhalb von MySQL wist du das nicht hinbekommen.

    Zitat von Patrick_Fries
    Will die 4.1 nicht auf meinem Server einsetzten, weils erst ne Beta ist. Oder kann mir jemand aus Erfahrung sagen, dass diese Version schon zufriedenstellend läuft?
    4.1.x nutze ich auf meinen Dev-Maschinen .. da habe ich keine Probleme bislang ... aber das heisst ja nix im Vergleich zu einer produktiven Umgebung.

    Kommentar


    • #3
      Danke schon mal für die schnelle Antwort!

      Dachte vielleicht, dass sich schon mal jemand die selben Gedanken gemacht hat und das elegant in einem Query gelöst hat.
      Ich erstelle ein Programm im VB6.0. Dort gibt es keine assoziativen Arrays und damit wird eine Funktion, die das alles übernehmen soll, recht kompliziert.

      Kommentar


      • #4
        Habe schon nach UDF's gesucht, aber nur welche für die Windows-Version von MySQL gefunden. Die waren in C# programmiert oder so....
        War nix dabei, was ich verwenden könnte...

        Jegliche Hilfe ist mir willkommen.....
        Ich bin soooo verzweifelt

        Kommentar


        • #5
          Zitat von Patrick_Fries
          Ich erstelle ein Programm im VB6.0. Dort gibt es keine assoziativen Arrays und damit wird eine Funktion, die das alles übernehmen soll, recht kompliziert.

          *eeek*


          Aber so schwierig ist das nciht ...

          Die Daten in der richtigen Reihenfolge auszulesen dürfte nicht das problem sein.
          Dabei einen Kenner mitgeliefert zu bekommen, der anzeigt, wann eine Gruppe zuende ist / anfängt dürfte auch nicht weiter schwer sein.

          Dabei bleiben dir 2 Möglichkeiten:



          Alles in eienr Query auslesen.
          Und die Umliegenden Daten ein bisschen rumcachen, bis der Umschwung auf eine andere Gruppe kommt.


          Oder die Daten in 2 Queries auslesen.
          Und über normale Arrays hinterher zusammenfügen.


          Das "trickygste" dabei ist gerademal das korrekte Setzen, der Kommata/Trenner ...
          Ein Mehrdimensionaler Array könnte da aber auch helfen, wenn VB6.0 ein equivalent zu implode() hat.

          Kommentar


          • #6
            Na OK. Dann muss ich halt in den sch**ß sauren Apfel beißen.

            Mein Query sieht jetzt so aus:
            SELECT 'geworben', RA.bestnr, RA.faellig, SUM(RA.betrag), R.vorname,
            R.name ,R.Konto, R.BLZ
            FROM resellers_auszahlungen AS RA
            LEFT JOIN resellers AS R ON R.benutzername = RA.reseller
            WHERE RA.faellig <= NOW() AND RA.status = 'pending' AND RA.art = 'geworben' "
            GROUP BY RA.reseller
            ORDER BY RA.faellig

            Was ich machen wollte: Jede Zeile hat eine ID-Zelle. Diese wollte ich mit GROUP_CONCAT() ganz am Anfang durch Kommata getrennt ausgeben.

            Muss dann jetzt so machen
            SELECT id, 'geworben', RA.bestnr, RA.faellig, RA.betrag, R.vorname,
            R.name ,R.Konto, R.BLZ, R.benutzername
            FROM resellers_auszahlungen AS RA
            LEFT JOIN resellers AS R ON R.benutzername = RA.reseller
            WHERE RA.faellig <= NOW() AND RA.status = 'pending' AND RA.art = 'geworben' "
            ORDER BY RA.faellig

            und dann nen 2D Array, der die Beträge je Benutzername kommuloert und die ID's mit Kommata getrennt aneinanderhängt....

            Ist wieder ne gute Stunde arbeit....... Das nervt vielleicht!

            Danke für deine Hilfe!
            Gruß, de Paddi

            Kommentar

            Lädt...
            X