[MySQL] Komplexe Sortierung
adapter
- datenbank
Liebes Forum,
eine kleine MySQL-Frage: wenn ich eine Abfrage auf nicht-triviale Art und Weise sortieren will, also extra für die Sortierung aus den abgefragten Daten ein neues Feld erzeugen muss, wie kann ich dann verhindern, dass dieses zusätzliche Feld ins Resultat aufgenommen wird?
Ein einfaches Beispiel: ich möchte das Ergebnis alphabetisch sortieren, dabei aber Groß/Kleinschreibung ignorieren.
Eine Lösung wäre:
SELECT text, LC(text) sortierfeld ORDER BY sortierfeld
Dummerweise bekomme ich dann eine Spalte im Abfrage-Resultat, die ich gar nicht brauche, sondern nur für die Sortierung eingefügt habe. Läßt sich das vermeiden?
Schöne Grüße
adapter
PS
Leider funktioniert folgendes nicht:
SELECT text ORDER BY LC(text)
Liebes Forum,
eine kleine MySQL-Frage: wenn ich eine Abfrage auf nicht-triviale Art und Weise sortieren will, also extra für die Sortierung aus den abgefragten Daten ein neues Feld erzeugen muss, wie kann ich dann verhindern, dass dieses zusätzliche Feld ins Resultat aufgenommen wird?
Ein einfaches Beispiel: ich möchte das Ergebnis alphabetisch sortieren, dabei aber Groß/Kleinschreibung ignorieren.
Eine Lösung wäre:
SELECT text, LC(text) sortierfeld ORDER BY sortierfeldDummerweise bekomme ich dann eine Spalte im Abfrage-Resultat, die ich gar nicht brauche, sondern nur für die Sortierung eingefügt habe. Läßt sich das vermeiden?
versuch mal:
SELECT LC(text) as ausgabe from sortierfeld ORDER BY ausgabe
Gruß
Reiner
Hallo Reiner,
hat sich schon erledigt. Es lag aber nicht an dem Syntax-Fehler, den Du hier noch erkannt hast, sondern daran, dass es LC() nicht gibt. Es muss LOWER() heissen.
Schöne Grüße
adapter
Sorry, war mein Fehler, dass ich PHP- und MySQL-Funktionen durcheinander geworfen habe. So funktioniert es:
SELECT text ORDER BY LOWER(text)
Schöne Grüße
adapter