Sortierung mit unterschiedlichen Kriterien
DanielDJ
- datenbank
0 Vinzenz Mai0 DiBo330
dedlfix
Hallo,
entwede ich stehe aufm Schlauch oder ich hab nen Denkfehler.
Würde mich freuen, wenn mir jemand helfen kann, ich verzweifel langsam.
Folgendes Problem:
ich frage daten aus einer DB (MySQL) ab. Wie folgt:
$ergebnis = mysql_query("SELECT *, DATE_FORMAT(gebdate, '%d. %b.') AS geb_letter, DATE_FORMAT(gebdate, '%m%d') AS geb_init,
DATE_FORMAT(gebdate, '%c') AS MONTH, DATE_FORMAT(gebdate, '%d') AS DAY FROM tl WHERE nr !='' AND kürzel !=''
AND ak NOT LIKE 'Zimmer' GROUP BY vname ORDER BY sz ASC, MONTH ASC, DAY ASC");
ich lass sie mir dann per php ausgeben.
Soweit funktioniert das.
Die einzelnen Daten werden sortiert nach SZ (Sternzeichen, nach Monat und dann nach Tag ausgeben.
Das ist perfekt.
Allerdings geht Sternzeichen 1 von Dezember bis Januar (Steinbock) und es wird mir wie folgt ausgegeben.
Erst alle Januar Tage, dann alle Dezember Tage.
Bei den rechtliche Sternzeichen / Daten soll das ja auch sein, nur bei dem Sternzeichen 1 (Steinbock) muß zuerst Dezember und dann Januar kommen.
Wie kann ich das bewerkstelligen. Hab auch schon zig Sachen wie ORDER BY WHEN..., IF... und CASE.. im SQL-Statement probiert, aber ich bekomms einfach nicht gebacken.
Freu mich auf eure Hilfe, während echt dringend und wichtig. Danke schon im Voraus.
Hallo,
Bei den rechtliche Sternzeichen / Daten soll das ja auch sein, nur bei dem Sternzeichen 1 (Steinbock) muß zuerst Dezember und dann Januar kommen.
Wie kann ich das bewerkstelligen. Hab auch schon zig Sachen wie ORDER BY WHEN..., IF... und CASE.. im SQL-Statement probiert, aber ich bekomms einfach nicht gebacken.
genau damit. Zum Beispiel eine berechnete Spalte, die im Falle von Steinbock und Dezember 0 zurückliefert und in allen anderen Fällen eine 1.
In der Sortierreihenfolge kann die aufsteigende Sortierung nach dieser Spalte direkt nach Sternzeichen und vor dem Monat kommen.
Freundliche Grüße
Vinzenz
Allerdings geht Sternzeichen 1 von Dezember bis Januar (Steinbock) und es wird mir wie folgt ausgegeben.
ORDER BY IF(sz=1, month*-1, month) ASC
Hi!
[code lang=sql]$ergebnis = mysql_query("...
Das ist kein SQL-Code, also bringt das Auszeichnen als SQL wenig. Da du kein PHP-Problem hast, interessiert jedoch der PHP-Code nicht. Bitte weglassen, und dann funktioniert auch die Syntaxauszeichnung für SQL, wenn du nur noch SQL-Code postest.
Bei den rechtliche Sternzeichen / Daten soll das ja auch sein, nur bei dem Sternzeichen 1 (Steinbock) muß zuerst Dezember und dann Januar kommen.
Mit den Control-Flow-Funktions, muss das prinzipiell gehen, aber auch die Funktion FIND_IN_SET() eignet sich dafür. Das Set baust du aus den Werten für die Monate auf.
Lo!