あなたはこれを行うことができます:
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
のインデックスは使用できません 並べ替えのパフォーマンスを向上させるため。