También está la función MySQLFIELD
.
Si desea una clasificación completa de todos los valores posibles:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core", "board", "other")
Si solo te importa que el "núcleo" sea lo primero y los demás 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, aquí hay algunas advertencias:
Primero, estoy bastante seguro de que esta es una funcionalidad solo 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 "core" 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.