您可以这样做:
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
列供您选择或排序。