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 | +---------+------+ |