Sortieren nach bestimmten Wert in MySQL Spalte

  • Moin,


    ich wollte mal Fragen ob man Einträge aus einer MySQL Tabelle nach einem bestimmten "Wort" Sortieren kann.


    Ich habe eine Spalte "Rang" und es gibt dort 3 Ränge. "Admin", "Sonstiges" und "Mitarbeiter"

    Ich möchte gerne das alle Einträge mit dem "Rang" Admin, ganz oben in der Tabelle sind. Danach die Einträge mit dem Rang "Sonstiges" und dann halt als letztes die "Mitarbeiter".


    Ich kenne das halt mit "ORDER BY <spalte> ASC oder DESC" aber das ist dann halt Alphabetisch sortiert.



    Hat jemand eine Idee?




    LG

    Marvin

  • Danke für deine Antwort. Was bedeutet in dem Fall die "1, 2"?

    Nichts besonderes, wichtig ist nur dass die erste Zahl kleiner ist als die zweite da nach den beiden Zahlen (aufsteigend) sortiert wird.

    Und würde das dann auch so sein das Erst "Admin" ganz oben ist, dann "Sonstiges" und dann "Mitarbeiter"?

    Wenn es mehr Werte sind kannst du FIELD() verwenden:

    SQL
    1. ORDER BY FIELD(Rang, 'Admin', 'Sonstiges', 'Mitarbeiter')

    Bei mehreren Felder wäre es aber evtl. sinnvoll eine eigene Tabelle mit den Rängen zu haben und dort ein Feld für die Sortierung mitzuführen (in der ursprünglichen Tabelle steht dann nicht der Rang im Klartext sondern nur die ID aus der Rang-Tabelle).