C'è anche il MySQL FIELD
funzione
.
Se desideri un ordinamento completo per tutti i valori possibili:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core", "board", "other")
Se ti interessa solo che "core" sia il primo e gli altri valori non contano:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC
Se vuoi ordinare prima per "core" e gli altri campi in un normale ordinamento:
SELECT id, name, priority
FROM mytable
ORDER BY FIELD(name, "core") DESC, priority
Ci sono alcuni avvertimenti qui, però:
Innanzitutto, sono abbastanza sicuro che questa sia una funzionalità solo per mysql:la domanda è contrassegnata come mysql, ma non si sa mai.
Secondo, presta attenzione a come FIELD()
funziona:restituisce l'indice a base singola del valore - nel caso di FIELD(priority, "core")
, restituirà 1 se "core" è il valore. Se il valore del campo non è nell'elenco, restituisce zero . Ecco perché DESC
è necessario a meno che tu non specifichi tutti i valori possibili.