MySQLでORDER BYを使って抽出したレコードを並べ替える方法【初心者向け】
MySQLで【ORDER BY】の構文を使って抽出したレコードを並べ替える方法を初心者向けに解説した記事です。MySQLでは、何もしないと昇順(asc)に並びます。ORDER BYで降順(desc)に並び替えることが可能です。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
MySQLの初心者向けに、基本的な使い方を解説する記事です。
今回は、ORDER BYを使った抽出レコードの並べ替えについて解説します。
なお本記事は、MySQLを扱うTechAcademyのPHPオンライン講座の内容をもとにしています。
今回の記事の内容は動画でもご覧いただけます。
テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。
田島メンター!価格の高い順、あるいは低い順みたいな感じでデータを並び替えて取得することは出来ますか?
もちろん!これがSQLの良い所で、一回で並べ替えて取得できるんだ。
価格や日付などで並べ替えて表示を変えたかったんですよねー。
いいね。そういうのにデータベースは便利なんだ。では、さっそく見てみよう!
ORDER BYを使って並び替え
抽出したレコードは、基本的に取り出した順に並びます。
この並び順を、どのフィールドを基準にどのような順で並べるかを、order by の構文を使って自由に指定することができます。
select * from テーブル名 order by フィールド名 asc (desc);
例として、userというテーブルを並び替えてみます。
select * from user order by id desc;
ascは昇順、descは降順をあらわし、ここでは「idのフィールドを基準に、降順で並び替える」という指示をしました。
なお、ascは省略可能なので、昇順で並べたいときは基本的に書かなくて大丈夫です。
select * from user order by id;
昇順に戻りましたね。
次は、idではなくusernameを基準に降順に並び替えてみましょう。
select * from user order by username desc;
降順なので、アルファベットのおしりからy,t,s…の順で並びました。
先ほどと同じように、昇順にしてみます。
select * from user order by username;
できましたね。
おわりに
抽出レコードの並び替えの方法は以上です。
さらに基本操作を学びたい場合は、MySQLでCOUNTを使ってレコード件数を取得する方法も合わせてご覧ください。
order by フィールド名で並び替えることが出来るんですね!
そうそう。指定しないとascと言って、昇順になるよね。あいうえお順。
数値とか日付だと昇順、降順は簡単だと思うんですが、ひらがなでも大丈夫なんですか?
難しく考える必要はないけど、ひらがなも文字コードで、あいうえおから順番に数値になってるんだよね。なので大丈夫だよ!
MySQLを勉強していて、
・もっと効率的に勉強したい
・誰かに聞きながら学びたい
・自分でWebサービスを作りたい
と思ったことはないでしょうか?
そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、オリジナルWebサービスを開発することが可能です。
独学に限界を感じている場合はご検討ください。