Você poderia fazer isso:
ORDER BY IF(SUBSTRING(name, 1, 14) = 'University of ', SUBSTRING(name, 15), name)
Pode ser uma boa ideia criar uma visão sobre esta tabela projetando um
name_value extra coluna definida como IF() expressão acima. Então você pode ordenar por esta coluna e selecioná-la sem ter que poluir suas consultas com IF() . Exibição de exemplo, supondo que o nome da universidade esteja armazenado na coluna
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;
Então você pode selecionar
Universities da mesma forma que você faz em list_universities , exceto que terá um name_value extra coluna que você pode selecionar, ou ordenar, ou qualquer outra coisa. Observe que esta abordagem (assim como
ORDER BY IF(...) ) não poderá usar nenhum índice em name para melhorar o desempenho do tipo.