Je zou dit kunnen doen:
ORDER BY IF(SUBSTRING(name, 1, 14) = 'University of ', SUBSTRING(name, 15), name)
Het kan een goed idee zijn om een weergave van deze tabel te maken met een extra name_value kolom ingesteld op IF() uitdrukking hierboven. Dan kunt u op deze kolom bestellen en deze selecteren zonder uw zoekopdrachten te vervuilen met IF() .
Voorbeeldweergave, ervan uitgaande dat de universiteitsnaam is opgeslagen in de kolom 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;
Dan kun je kiezen uit Universities op dezelfde manier als bij list_universities , behalve dat het een extra name_value . heeft kolom die u kunt selecteren of bestellen, of wat dan ook.
Merk op dat deze benadering (evenals ORDER BY IF(...) ) kan geen index gebruiken op name om de prestaties van de soort te verbeteren.