【MySQL】「select … order by 2;」と書くと、2列目でソートできる

【MySQL】「select … order by 2;」と書くと、2列目でソートできる

fukasawaです。こんにちは。タイトルが今回のオチになります。

仕事でSQLを書く機会がわりと多いのですが、「select … order by 2;」という書き方をすると、2列目の結果でソートできる、というのを知らずにここまできてしまいました。同じような人がいるかもと思ったので、ご紹介できればと思います。

※ MySQL 5.6.3 で検証しています。
※ さっき教えてもらったのですが、標準SQLからはSQL99以降こちらの仕様が削除されてるとのことだったので、MySQL のバージョン・RDBMSによっては使えないかもです。

サンプルとして、タイピングのスコアを記録するテーブルを用意しました。

  • typing_test_scores テーブル

fukasawa_20180628_01.png

【例1】ユーザ名(2列目)でソートする

 select * from typing_test_scores order by 2;

fukasawa_20180628_02.png

【例2】集約関数を使用してる場合もいけるみたいです。各ユーザの最高点(2列目)でソートする

 select user_name,max(score) from typing_test_scores group by user_name order by 2 desc;

fukasawa_20180628_03.png

めちゃくちゃ短いですが、今回はここまでです。

これから暑い季節になりますが、みなさま体調など崩されませぬよう、ご自愛くださいませ。
ではでは。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ