Du kan gøre dette:
ORDER BY IF(SUBSTRING(name, 1, 14) = 'University of ', SUBSTRING(name, 15), name)
Det kan være en god idé at skabe en visning over denne tabel, der projicerer en ekstra name_value kolonne sat til IF() udtryk ovenfor. Så kan du bestille efter denne kolonne og vælge den uden at skulle forurene dine forespørgsler med IF() .
Eksempelvisning, forudsat at universitetets navn er gemt i kolonnen name :
CREATE VIEW Universities AS
SELECT
list_universities.*,
IF(SUBSTRING(name, 1, 14) = 'University of ',
SUBSTRING(name, 15),
name) AS name_value
FROM list_universities;
Derefter kan du vælge fra Universities på samme måde som du gør fra list_universities , bortset fra at den vil have en ekstra name_value kolonne, som du kan vælge eller bestille efter eller hvad som helst.
Bemærk, at denne fremgangsmåde (såvel som ORDER BY IF(...) ) vil ikke være i stand til at bruge noget indeks på name for at forbedre den slags ydeevne.