あなたはこれを行うことができます:
ORDER BY IF(SUBSTRING(name, 1, 14) = 'University of ', SUBSTRING(name, 15), name)
このテーブル上に、追加のname_valueを投影するビューを作成することをお勧めします。 IF()に設定された列 上記の式。次に、この列で並べ替えて、IF()でクエリを汚染することなく選択できます。 。
大学名が列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;
次に、Universitiesから選択できます list_universitiesから行うのと同じ方法 、ただし、追加のname_valueがあります 選択したり、並べ替えたりできる列。
このアプローチ(およびORDER BY IF(...)に注意してください )nameのインデックスは使用できません 並べ替えのパフォーマンスを向上させるため。