MySQLではORDER BY句でフィールドを指定することで、テーブル内の並びかえを行うことができます。
ここではMySQLのORDER BY句を使って、データを並び替える方法を紹介します。
MySQL・ORDER BY句を使ってデータの並び替えを行う手順
基本的な使い方は以下のとおりです。
SELECT * FROM テーブル名 ORDER BY フィールド名 ASC
特にSQLで昇順と降順を指定する場合は、以下のように指定します。
- ASC・・・Ascending(昇順)
- DESC・・・Descending(降順)
以上を踏まえ、以下テーブル(mutable)を使って並び替えを行ってみます。
SELECT * FROM mytable
>MySQLにデータベースを作成する方法のメモ(phpMyAdmin)
1. 主キーを番号順に並び替える場合
テーブルの主キーとなる、フィールド名の並びを変更してみます。
フィールド名idを指定して昇順に並び替え
SELECT * FROM mytable ORDER BY id ASC
idの番号が昇順に並び替えできました。
フィールド名idを降順に並び替え
SELECT * FROM mytable ORDER BY id DESC
idの番号が降順に並び替えできました。
2. テキストを並び替える場合
次にテキストのフィールド名を並び替えてみます。
フィールド名textを昇順に並び替え
SELECT * FROM mytable ORDER BY TEXT ASC
textのデータが昇順に並びました。
フィールド名textを降順に並び替え
SELECT * FROM mytable ORDER BY TEXT DESC
textのデータが降順に並びました。(漢字の扱いについては別途触れます)
3. 値段を並び替える場合
次は、値段となるpriceの箇所を並び替えてみます。
フィールド名priceを昇順に並び替え
SELECT * FROM mytable ORDER BY price ASC
priceの値が昇順に並び替えられました。
フィールド名priceを降順に並び替え
SELECT * FROM mytable ORDER BY price DESC
priceの値が降順に並び替えられました。
【重要】テキストを並び替えるときの注意点
テキストを並び替える際の注意点として、コンピューターは
- ひらがな
- カタカナ
- 漢字
上記の並び替えを正しく行うことはできません。(ひらがな・カタカナ・漢字の区別ができないため)
たとえば以下テーブルの、
フィールド「TEXT2」を昇順にするとしましょう。
SELECT * FROM mytable ORDER BY TEXT2 ASC
すると、読みがなに対して並びの順がバラバラなんすよね。
漢字をORDER BY句で並び替える方法
なので、テーブル内に漢字が含まれる場合は、
- 別にカラムを作成
- 読みがなを入力
といったことを行って
そのカラムの並び替えを行ってあげると良いっす。
SELECT * FROM mytable ORDER BY YOMI ASC
あとは「ひらがな」だったら「ひらがなだけの文字列」、カタカナだったら「カタカナだけの文字列」といった感じで統一すれば後からの管理が捗りそうです。
ランキングなどの管理を行うときは、CVなどの獲得数などで並び替えの管理を行うのがオススメ。
まとめ
MySQLでORDER BY句を使ったテーブルの並び替えの方法でした。
漢字の並び替えについては、ちょっと工夫が必要ですね。

次記事:【MySQL】DATETIME型でデータの更新日を自動表示する手順(phpMyAdmin)