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.