2016-04-24 75 views
1

我想知道是否有快速的方法来排序?Alphatbetically对MYSQL结果进行升序排序,但未将'The'排序为T?

想象一下,结果是书名或电影名称等,我不希望这样的标题开头的单词'THE'排序为T,我希望它排序为下一个字..例如“猎犬的巴斯克维尔“将排序为”巴斯克维尔猎犬,“将如此返回作为H而不是T.

谢谢。

+0

@CharlotteDunois。 。 。虽然几乎是重复的,但这里的答案比这个问题的大部分答案要好得多 - 包括两个排名最靠前的答案。 –

回答

1

我没有意识到会做到这一点......但是通过制作新专栏非常容易,确保不以“the”开始并按此排序。 ..

SELECT title,TRIM(LEADING 'the ' FROM LOWER(title)) AS title_without_the 
FROM books_and_movies 
ORDER BY title_without_the 
+0

感谢您的帮助;) – FoxyFish

1

我会去:

order (case when title like 'The %' then lower(substr(Title, 5)) 
      else lower(title) 
     end) 

lower()是处理区分大小写的排序规则,所以它并不总是必要的。

+0

使用LIKE时LOWER不是必需的,因为在MySQL中,默认情况下SQL模式不区分大小写 – Barry

+0

感谢您的帮助;) – FoxyFish