Sortierung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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.

    Kommentar


    • #3
      Das funzt doch wundertbar. Danke

      Kommentar


      • #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

        Kommentar

        Lädt...
        X