5.2. Wie kann ich beim Sortieren einen bestimmten Wert als erstes/letzes Ausgeben lassen?

Antwort von Christian Hamacher

Angenommen man hat eine Tabelle "test":

mysql> desc test;
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| ID    | int(10) unsigned |      | PRI | NULL    | auto_increment |
| Wert  | varchar(60)      |      |     |         |                |
+-------+------------------+------+-----+---------+----------------+
mysql> select * from test;
+----+--------------+
| ID | Wert         |
+----+--------------+
|  1 | Achtung      |
|  2 | Beachten     |
|  3 | Superwichtig |
|  4 | Wichtig      |
+----+--------------+

Jetzt möchte man, dass bei der Ausgabe nach Wert alphabetisch sortiert wird, aber der/die Datensätze mit Wert=Superwichtig soll als erster angezeigt werden:

mysql> select Wert from test
    -> order by Wert != 'Superwichtig', Wert;
+--------------+
| Wert         |
+--------------+
| Superwichtig |
| Achtung      |
| Beachten     |
| Wichtig      |
+--------------+

Eventuell möchte man aber, dass Wert=Superwichtig am Ende der Liste steht:

mysql> select Wert from test
    -> order by Wert = 'Superwichtig', Wert;
+--------------+
| Wert         |
+--------------+
| Achtung      |
| Beachten     |
| Wichtig      |
| Superwichtig |
+--------------+