phpbar.de logo

Mailinglisten-Archive

ORDER BY-Problem

ORDER BY-Problem

Markus Stanczyk mysql-de_(at)_lists.bttr.org
Fri, 12 Jul 2002 17:40:22 +0200


Hallo,


> Bei einem ORDER BY acronym kommt natürlich 10 vor 2 etc.
> Wie bekomme ich das ganze denn in die oben aufgezählte Reihenfolge?
> Ein einfaches SUBSTR() funktioniert nicht, da 1) die Buchstabenfolge 1-3
> stellen lang ist und 2) weil auch die Stellen der Zahl 1-3 lang sein
> kann.
> Ich muss den String vorm Sortieren zerlegen, aber wie. In PHP wäre das
> mit einer entsprechenden Regexp möglich, doch die REGEXP-Funktion in
> MySQL liefert nur 0/1, da müsste ich dann alle Fälle von "Fand" checken.
>

so müßte Deine order-by-Klausel lauten:

order by substring(acronym, 1, position(' ' in acronym)),
round(substring(acronym, position(' ' in acronym) + 1));

Anhand des Leerzeichen wird der String gesplittet.
Zuerst wird nach allem bis zum Leerzeichen sortiert,
dann nach allem ab der ersten Position nach dem Leerzeichen.

Die Funktion round() benutze ich zur Typumwandlung von String in Zahl.

Gruß

Markus Stanczyk


---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive