【MySQL】「select … order by 2;」と書くと、2列目でソートできる
fukasawaです。こんにちは。タイトルが今回のオチになります。
仕事でSQLを書く機会がわりと多いのですが、「select … order by 2;」という書き方をすると、2列目の結果でソートできる、というのを知らずにここまできてしまいました。同じような人がいるかもと思ったので、ご紹介できればと思います。
※ MySQL 5.6.3 で検証しています。
※ さっき教えてもらったのですが、標準SQLからはSQL99以降こちらの仕様が削除されてるとのことだったので、MySQL のバージョン・RDBMSによっては使えないかもです。
サンプルとして、タイピングのスコアを記録するテーブルを用意しました。
- typing_test_scores テーブル
【例1】ユーザ名(2列目)でソートする
select * from typing_test_scores order by 2;
【例2】集約関数を使用してる場合もいけるみたいです。各ユーザの最高点(2列目)でソートする
select user_name,max(score) from typing_test_scores group by user_name order by 2 desc;
めちゃくちゃ短いですが、今回はここまでです。
これから暑い季節になりますが、みなさま体調など崩されませぬよう、ご自愛くださいませ。
ではでは。