MySQL入門

データの並び替え(ORDER BY)

全334コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
ORDER BY句を使えば、データを自在に並び替えることができます。ショッピングサイトなどでの価格順での並び替えなどに応用できますので、使い方を覚えていきましょう。
講師:
11:44

字幕

ここではデータの並べ替えとして order by 句というものについて 紹介して行きます データは基本的に ID 順などで 並ぶんですけども この並び順を変化させることができます 実際にやってみましょう ここではMAMP のスタートページを開いて こちらから phpMyAdmin を開きます そしてデータベースを1つ作りましょう 文字コードを utf8_general_ci として 作成をし ここに予め準備しておいたコチラ lesson_03_06.sql という SQL ファイルを選択します そして「実行」ボタンをクリックすると このように item_table という テーブルが出来上がり 中にこのような7件ほどの データが入っていますので ここから作業を始めて行きます ではこちら SQL をクリックして select * 全てのフィールドを item_table から検索する― という SQL を実行してみます するとこのように ID の順で並びました 実はこの順番は基本的には mySQL に任されています その為今は たまたま入力順で ID の順番で並んでいますが 場合によってはこれはバラバラに 表示されてしまうこともあります そこで基本的に SQL を実行する時には 並び順を指定してその順番で 並べる必要があります その為には order by という句を 使います ここに id と指定し 最後に asc と記述しましょう これで「実行」ボタンをクリックすると 先ほどと同様にこのように 1 2 3 4 5 6 7 という順番で 並びました このとき phpMyAdmin では この id というフィールドの隣に このような上向きの矢印が 付いていることから id の順番で並んでいることが分かります では SQL をあらためて見ていきましょう この order by の後に続くこちらは その並び替えの基準となる フィールドの名前です ここでは id を基準に並べます という意味になっています その後の asc というのは ascending の略称で ここでは小さい順番に並べると いうことになっています 大きい順に並べる場合には ここを descending の略称 desc で このように記述します 実際に実行してみましょう するとこのように今度は 大きい順に並べることができました この並べる基準となるフィールドは 何でも結構です たとえばここを price に変更して 実行するボタンをクリックすれば このように価格が高い順番に 並べることができます この時当然ながら id はバラバラに なります そして price を asc とすれば 今度はこのように price が小さい順に 並びます ただし 注意しなければならないのが こちらの文字列型いわゆる varchar や text などで作ったフィールドです たとえばここでは item_name を asc 小さい順で並べると 指定してみましょう 実行ボタンをクリックすると このように並びます 一見すると正しく見えますが 実はこの部分が正しくありません あいうえお かきくけこ という順番で 並んでいますが 「お」である筈のオレンジはここでは この「りんご」より後ろにきてしまいました これは何故かと言うと ここで並べられている並び順というのは この読み仮名の順では並んでいません 文字コードと言われる順番で 並んでいるんですけども この文字コードと言われるもの この文字を1つ1つコード化して 管理している管理番号になります コンピューターではこの文字コードと 言われる管理番号は 先にひらがなに全て割り当てられ その後カタカナに割り当てられると いう順番で割り当たっています その為カタカナで書いてしまったものは ひらがなよりも後にリストアップされると いうことになってしまう訳です 今回はひらがなとカタカナだけのデータなので それでもまだ多少は見栄えがしていますが これが漢字が混ざってくると ますます並び順としては おかしなことになってしまいます 漢字の読み仮名をコンピューターは 認識することができないので すべて文字コードの順で並んでしまい ほとんど見た目にはバラバラに 並んでしまうことになります これを防ぐにはどうしたらよいかというと 通常 データベースにこのような 並べ替えの対象となるようなフィールドを 作る時には item_name の他に もう1つ かなを指定するための フィールドを追加することが多いです では ここでは1つフィールドを 追加してみましょう フィールドの追加は SQL でも行えますが ここでは phpMyAdmin を使った方が 便利でしょう このテーブルの名前をクリックすると こちら構造に行けます 構造の下の所には カラムの追加があります こちら見た目が少し難しいんですけれども まず1個のカラムを追加すると指定し どこに追加するのかを選びます テーブルの末尾または テーブルの先頭であれば こちらのチェックをすればよく ここではこちら item_name の下に フィールドを追加したいので 「指定カラムの後に」というチェックをします そしてどこの下に追加するかというと item_name を選んで 「実行」ボタンをクリックします では ここには item_name_kana という 名前のフィールドを追加し varchar で 500 と指定しましょう その他の設定項目はそのままで結構です 「保存する」をクリックして こちらあらためて構造を見ると このように item_name_kana というのが 追加されています ここでは「表示」をクリックして この全てのフィールドに かなの情報を入れていきたいので 「全てチェックをする」をクリックして こちら右側にある鉛筆のマーク 変更をクリックしてください するとこのように各データを 変更する画面が表示されます ではここに「ひらがな」または「カタカナ」 どちらかで統一して それぞれの情報を入れていきます これで全てのデータを変更することが できました こちら「ひらがな」と「カタカナ」 「ひらがな」と「カタカナ」という形で すべての情報を同じカタカナという 統一された記法で こちらに収めています ではあらためて並べ替えを行ってみましょう ここでは select * from item_table とし order by として item_name_kana の方で並べ替えを行います asc として実行ボタンをクリックすると このように「あおりんご」「いちご」 「オレンジ」「キャベツ」ということで こちらの「いちご」よりも大きく 「きゅうり」よりも小さい ということで「オ」 「キャ」がそれぞれ リストアップされるようになりました このようにカタカナまたはひらがな どちらかで統一した形で「 かな」と いうフィールドを作っておけば 並べ替えのときにこのように 正しく並べ替えられます たとえば商品名であったり 社員名簿を管理する時の社員名など 並べ替えを起こす可能性がある フィールドについては 必ずこちらの読み仮名を入れるような フィールドを準備しておくと良いでしょう さてこの order by ですけれども もう少し複雑な並べ替えを 行うこともできます たとえばここでは order by の price として 更にカンマで区切って item_name_kana とします そして asc としましょう これで「実行」ボタンを クリックしてみて下さい するとこのように price で 並べ替えが行われます そして 80 円の商品が今ここでは 2つありますが キャベツ・りんごの順で並んでいます ではここでこの item_name_kana と なっている所を desc としてみましょう descending 大きい順に並べると いう意味です すると今度はこのように price の順番で並んでいるんですけど 同じ 80 円のものに注目すると りんご・キャベツの順番で並びました つまりりんごとキャベツの順番が 逆転しています この order by ですけれども まず price の所を確認していきます これは price の順番で並べる という意味ですが その後に来ている筈の asc や desc が省略されています 実はこの asc というのは省略することができ 省略すると基本的には小さい順に並びます 更に order by の所にカンマで区切って 複数のフィールド名を指定すると まず price で並べた上で 同じ price のものは この item_name_kana で並べ替える― ということができます そして asc や desc はそれぞれ 個別に指定することができるので ここでは price は小さい順 そして商品名は大きい順に並べる― というようなことも瞬時に行えます このように order by の句を使うと 様々な条件で並べ替えが行えます 非常にすばやく並べ替えてくれるので 例えばショッピングサイトなどで 商品を安い順に並べたい 高い順に並べたいなど 様々な並べ替えの条件を 指定することができますので ぜひこの order by 句を 使いこなしてみて下さい

MySQL入門

このコースではPHPとMySQLというデータベースを組み合わせたWebシステムを構築する手法について解説します。「データベースとはなにか」を説明したのち、プライマリーキーやリレーションなどの重要な用語についても解説しながら実際にデータベースを動かしていきます。

3時間14分 (29 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2013年12月31日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。