También está el MySQL FIELD
función
.
Si desea una clasificación completa para todos los valores posibles:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core", "board", "other")
Si solo le importa que "núcleo" sea lo primero y los otros valores no importan:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC
Si desea ordenar primero por "núcleo" y los otros campos en el orden de clasificación normal:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC, priority
Sin embargo, hay algunas advertencias aquí:
Primero, estoy bastante seguro de que esta es una funcionalidad exclusiva de mysql:la pregunta está etiquetada como mysql, pero nunca se sabe.
En segundo lugar, preste atención a cómo FIELD()
funciona:devuelve el índice basado en uno del valor - en el caso de FIELD(priority, "core")
, devolverá 1 si "núcleo" es el valor. Si el valor del campo no está en la lista, devuelve cero . Por eso DESC
es necesario a menos que especifique todos los valores posibles.