MySQLでORDER BYを使って抽出したレコードを並べ替える方法【初心者向け】

MySQLで【ORDER BY】の構文を使って抽出したレコードを並べ替える方法を初心者向けに解説した記事です。MySQLでは、何もしないと昇順(asc)に並びます。ORDER BYで降順(desc)に並び替えることが可能です。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

MySQLの初心者向けに、基本的な使い方を解説する記事です。

今回は、ORDER BYを使った抽出レコードの並べ替えについて解説します。

なお本記事は、MySQLを扱うTechAcademyのPHPオンライン講座の内容をもとにしています。

 

今回の記事の内容は動画でもご覧いただけます。
テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。

 

大石ゆかり

田島メンター!価格の高い順、あるいは低い順みたいな感じでデータを並び替えて取得することは出来ますか?

田島悠介

もちろん!これがSQLの良い所で、一回で並べ替えて取得できるんだ。

大石ゆかり

価格や日付などで並べ替えて表示を変えたかったんですよねー。

田島悠介

いいね。そういうのにデータベースは便利なんだ。では、さっそく見てみよう!

 

ORDER BYを使って並び替え

抽出したレコードは、基本的に取り出した順に並びます。

この並び順を、どのフィールドを基準にどのような順で並べるかを、order by の構文を使って自由に指定することができます。

 

select * from テーブル名 order by フィールド名 asc (desc);

 

例として、userというテーブルを並び替えてみます。

スクリーンショット 2015-01-14 18.06.48

 

select * from user order by id desc;

スクリーンショット 2015-01-14 18.07.07

 

ascは昇順descは降順をあらわし、ここでは「idのフィールドを基準に、降順で並び替える」という指示をしました。

 

なお、ascは省略可能なので、昇順で並べたいときは基本的に書かなくて大丈夫です。

select * from user order by id;

スクリーンショット 2015-01-14 18.20.43

昇順に戻りましたね。

 

 

次は、idではなくusernameを基準に降順に並び替えてみましょう。

select * from user order by username desc;

スクリーンショット 2015-01-14 18.28.39

降順なので、アルファベットのおしりからy,t,s…の順で並びました。

 

先ほどと同じように、昇順にしてみます。

select * from user order by username;

スクリーンショット 2015-01-14 18.33.40

できましたね。

 

おわりに

抽出レコードの並び替えの方法は以上です。

さらに基本操作を学びたい場合は、MySQLでCOUNTを使ってレコード件数を取得する方法も合わせてご覧ください。

 

大石ゆかり

order by フィールド名で並び替えることが出来るんですね!

田島悠介

そうそう。指定しないとascと言って、昇順になるよね。あいうえお順。

大石ゆかり

数値とか日付だと昇順、降順は簡単だと思うんですが、ひらがなでも大丈夫なんですか?

田島悠介

難しく考える必要はないけど、ひらがなも文字コードで、あいうえおから順番に数値になってるんだよね。なので大丈夫だよ!

 

MySQLを勉強していて、
・もっと効率的に勉強したい
・誰かに聞きながら学びたい
・自分でWebサービスを作りたい
と思ったことはないでしょうか?

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。