ORDER BY FIELDでSELECT結果を任意の順番にソートする
今日調べて初めて知ったことをメモ。
例えば、
というデータがあったとして、
「表示をこんぶ⇒梅⇒シーチキンの順にしてくれ~!」
と言われた場合。
MySQLでは
SELECT * FROM チーム結果TBL
ORDER BY field(チーム名,'こんぶチーム','梅チーム','シーチキンチーム');
と書けばOKだそうです~!
無事望みの挙動となりました。便利~。
上司からは最初「CASE文とかでできるんじゃない?」と言われていたので、
一応そちらも調べました。
SELECT * FROM チーム結果TBL
ORDER BY CASE チーム名
WHEN 'こんぶチーム' THEN 1
WHEN '梅チーム' THEN 2
WHEN 'シーチキンチーム' THEN 3
ELSE 0 END
でOKのようです。
(ごめんなさいまだ試してません)
開発に必要なのはつくづく、検索能力だと思い知らされる毎日。。。
(もちろん頭の中に引き出しが沢山あることは大切ですが!!)
ちゃんと記事にまとめてくれている先人たちに感謝・・・◎
<参考>
MySQLで任意の順番でソートする : Nacky - Snowland.net
[SQL]任意のソートをCASE文で記述する方法 | プログラミング | アイスケット | 神奈川県相模原市の成功できるホームページ制作・SEO・運用を提供する会社