AlexBausW: MySQL order by nach eigenen Kriterien

Beitrag lesen

Hallo,

Ich habe eine Tabelle, die unter anderem eine Spalte enthält, die durch einzelne Buchstaben die Zuordnung zu einer Gruppe angibt.

[Sortierung nach Buchstabenspalte]

Ich möchte diese Sortierung aber selbst definieren. Gibt es eine Möglichkeit MySQL zu sagen, dass es nicht die Reihenfolge im Alphabet benutzen sollte, sondern meine eigene?

[...]

Mir würde spontan, ohne tiefer in die Dokumentation von MySql einzutauchen, eine Translationstabelle einfallen, in der Du den Buchstaben Deiner Spalte entsprechende Buchstaben (je nach Typ der Spalte auch eine Zahl) zuweist, anhand derer Du dann eine Sortierung vornehmen kannst:

translationtable
 -------
| B | S |
|-------|
| H | A |
| A | B |
| Z | D |
| K | E |
 -------

Das würde zu folgende SQL-Anweisung führen:

SELECT DISTINCT id, gruppe, S FROM gruppen LEFT JOIN translationtable ON gruppe = B ORDER BY S ASC

Das sollte iirc und afaik immer dann dem selectierten Datensatz ein Wert aus der Spalte S zuordnen, wenn der Wert in Spalte gruppe einem Wert in Spalte B entspricht. Dann kannst Du ganz normal alphabetisch sortieren.

Es gibt iirc und afaik noch eine Möglichkeit eigene Zeichensätze zu definieren, die MySQL zu Sortierung verwenden kann. Das gilt dann aber afaik für alle Datenbanken und wird vom entsprechenden Provider sicherlich nicht unterstützt werden. :)

Gruß Alex

--
http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart
ss:) zu:} ls:} fo:| de:[ va:| ch:| sh:( n4:& rl:° br:& js:| ie:| fl:| mo:}