Sortierung

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sortierung

    Hallo!

    Ich habe mehrere Einträge in einer Datenbank:
    Code:
    ... |    TYP    | ...
    ... | basic     | ...
    ... | default   | ...
    ... | global    | ...
    ... | default   | ...
    ... | default   | ...
    ... | important | ...
    Nun frage ich alle Datensätze ab. Wie kann ich das jetzt am einfachsten erreichen, dass alle Datensätze mit dem typ default als letztes in der Liste liegen? ORDER BY type würde hier nix bringen, da alphabetisch gesehen basic vor default und global/important danach liegt. Gibts da irgend ne Möglichkeit? Oder muss ich hier zwangsläufig mit UNION ran?

    Danke

  • #2
    ... ORDER BY FIELD(TYP, 'basic', 'global', 'important', 'default') ASC

    FIELD() ist eine Funktion, die die Position von TYP in der Liste der weiteren Argumente zurückgibt. Also 1 für basic bis 4 für default.
    Diese Lösung setzt leider voraus, dass alle Werte des Sortierkriteriums schon bekannt sind, aber mit fällt keine andere Lösung ein, bei der es nicht so wäre.

    Comment


    • #3
      Das funzt doch wundertbar. Danke

      Comment


      • #4
        Andere Möglichkeit (falls nicht alle Typen bekannt sind):
        Code:
        SELECT 
        	...,
        	typ,
        	IF(typ = 'default', 1, 0) base
        FROM
        	...
        ORDER BY
        	base,
        	typ;
        Gruss
        H2O

        Comment

        Working...
        X