Antwort von Christian Hamacher
Manchmal will man nicht nur 1 Wert als erstes/letzes zurückgeliefert bekommen, sondern eine komplett eigene Sortierreihenfolge festlegen. Hierzu lässt sich die Funktion FIND_IN_SET() verwenden. Man muss dazu allerdings die zu sortierenden Werte kennen.
mysql> select name
-> from test
-> order by FIND_IN_SET(name,'Karin,Heidi,Andreas,Josef');
+---------+
| name |
+---------+
| Karin |
| Heidi |
| Andreas |
| Josef |
+---------+ |
In älteren (3.22.x) Versionen von MySQL muss man die Query anders formulieren.
mysql> select name, FIND_IN_SET(name,'Karin,Heidi,Andreas,Josef') as sort
-> from test
-> order by sort;
+---------+------+
| name | sort |
+---------+------+
| Karin | 1 |
| Heidi | 2 |
| Andreas | 3 |
| Josef | 4 |
+---------+------+ |