Sie könnten dies tun:
ORDER BY IF(SUBSTRING(name, 1, 14) = 'University of ', SUBSTRING(name, 15), name)
Es könnte eine gute Idee sein, eine Ansicht über diese Tabelle zu erstellen, die einen zusätzlichen name_value
projiziert Spalte auf IF()
gesetzt Ausdruck oben. Dann können Sie nach dieser Spalte sortieren und auswählen, ohne Ihre Abfragen mit IF()
verunreinigen zu müssen .
Beispielansicht unter der Annahme, dass der Hochschulname in der Spalte name
hinterlegt ist :
CREATE VIEW Universities AS
SELECT
list_universities.*,
IF(SUBSTRING(name, 1, 14) = 'University of ',
SUBSTRING(name, 15),
name) AS name_value
FROM list_universities;
Dann können Sie unter Universities
auswählen auf die gleiche Weise wie bei list_universities
, außer dass es einen zusätzlichen name_value
hat Spalte, die Sie auswählen oder sortieren können oder was auch immer.
Beachten Sie, dass dieser Ansatz (sowie ORDER BY IF(...)
) kann keinen Index für name
verwenden um die Leistung der Sortierung zu verbessern.