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

MySQL - ORDER BY-Werte innerhalb von IN()

SELECT id, name
FROM mytable
WHERE name IN ('B', 'A', 'D', 'E', 'C')
ORDER BY FIELD(name, 'B', 'A', 'D', 'E', 'C')

Das FELD Die Funktion gibt die Position des ersten Strings in der verbleibenden Liste von Strings zurück.

Es ist jedoch hinsichtlich der Leistung viel besser, eine indizierte Spalte zu haben, die Ihre Sortierreihenfolge darstellt, und dann nach dieser Spalte zu sortieren.