Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So definieren Sie eine benutzerdefinierte ORDER BY-Reihenfolge in mySQL

MySQL hat eine praktische Funktion namens FIELD() was sich hervorragend für Aufgaben wie diese eignet.

ORDER BY FIELD(Language,'ENU','JPN','DAN'), ID

Beachten Sie jedoch, dass

  1. Es macht Ihr SQL weniger portabel, da andere DBMSs diese Funktion möglicherweise nicht haben

  2. Wenn Ihre Liste von Sprachen (oder anderen Werten, nach denen sortiert werden soll) viel länger wird, ist es besser, eine separate Tabelle mit sortorder-Spalte für sie zu haben und sie mit Ihren Abfragen zum Sortieren zu verbinden.