php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.07.2004, 11:54  
Gast
 
Beiträge: n/a
Standard [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
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.07.2004, 11:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard Re: GROUP_CONCAT()

Zitat:
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:
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.
Guradia ist offline   Mit Zitat antworten
Alt 30.07.2004, 12:01  
Gast
 
Beiträge: n/a
Standard

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.
  Mit Zitat antworten
Alt 30.07.2004, 12:07  
Gast
 
Beiträge: n/a
Standard

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
  Mit Zitat antworten
Alt 30.07.2004, 12:09  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 2.150
Guradia befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
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.
Guradia ist offline   Mit Zitat antworten
Alt 30.07.2004, 12:24  
Gast
 
Beiträge: n/a
Standard

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
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
group_concat php array, group_concat reihenfolge, php group_concat, group_concat(), group_concat mysql 4.0, ab welcher version gibt es group_concat, workaround group_concat mysql 4, php group_concat auslesen, group_concat, group_concat auslesen, group_concat as array, group_concat mysql 4, group_concat array, php group_concat order by, mysql group_concat linux, \group_concat in where\, equivalent zu group_concat bei mysql

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:49 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.