2016-04-24 19 views
1

私はこのような並べ替えの迅速な方法があったのだろうか?MYSQLの結果をアルファベット順に昇順にソートしますが、 'The'をTとしてソートしません。

書籍のタイトルや映画のタイトルなどの結果を想像してみてください。「THE」で始まるタイトルが「T」で始まりたいのであれば、次の単語として並べ替えたいと思っています。 Baskervillesの「Hound of the Baskervilles、The」は、Hとして返され、Tではなく返されます。

ありがとうございます。

+0

@CharlotteDunois。 。 。ほぼ重複していますが、ここでの回答は、2つのトップランクの回答を含む、その質問の回答のほとんどよりも優れています。 –

答えて

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

MySQLではLIKEを使用しているときにLOWERは必要ありません.SQLパターンはデフォルトで大文字と小文字を区別しません – Barry

+0

助けを借りてくれてありがとう;) – FoxyFish

関連する問題