Můžete to udělat takto:
ORDER BY IF(SUBSTRING(name, 1, 14) = 'University of ', SUBSTRING(name, 15), name)
Mohlo by být dobré vytvořit pohled nad touto tabulkou promítající extra name_value
sloupec nastaven na IF()
výraz výše. Poté můžete seřadit podle tohoto sloupce a vybrat jej, aniž byste museli své dotazy znečišťovat pomocí IF()
.
Příklad zobrazení za předpokladu, že název univerzity je uložen ve sloupci 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;
Poté si můžete vybrat z Universities
stejným způsobem jako z list_universities
, kromě toho bude mít navíc name_value
sloupec, který můžete vybrat, seřadit podle něj nebo cokoli jiného.
Všimněte si, že tento přístup (stejně jako ORDER BY IF(...)
) nebude moci použít žádný index na name
zlepšit výkon tohoto druhu.