SQLのソート方法というと、カラム名を指定してASCかDESCのいずれかでソートするのが一般的ですが、CASE文を使って任意の文字列の順番でソートすることができます。
例えば、テーブル名がtable_fruit、カラム名がnameというテーブルがあり、nameにはもも、りんご、いちごという名前が入っていたとします。
通常、nameをASCでソートすると、いちご→もも→りんごの順になりますが、case文を使ってソートすると、任意の順番でソートすることができます。
もも→りんご→いちごの順でソートするには以下のように書きます。
SELECT * from table_fruit ORDER BY CASE name WHEN "もも" THEN 1 WHEN "りんご" THEN 2 WHEN "いちご" THEN 3 ELSE 0 END
CASEはいろいろと利用すると便利なSQL文が書けるので重宝しています。
- 投稿タグ
- MySQL