【MySQL】ORDER BY句でデータの並び替えを行う方法

【MySQL】ORDER BY句でデータの並び替えを行う方法MySQL

MySQLではORDER BY句でフィールドを指定することで、テーブル内の並びかえを行うことができます

ORDER BY句でidが昇順になった

ここではMySQLのORDER BY句を使って、データを並び替える方法を紹介します。

補足
WHERE句とLIKE演算子のデータ抽出方法を理解しておくとスムーズです!

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を指定して昇順に並び替え

 

フィールド名idを降順に並び替え

SELECT * FROM mytable ORDER BY id DESC
 

idの番号が降順に並び替えできました

フィールド名idを降順に並び替え

 

2. テキストを並び替える場合

次にテキストのフィールド名を並び替えてみます。

フィールド名textを昇順に並び替え

SELECT * FROM mytable ORDER BY TEXT ASC
 

textのデータが昇順に並びました。

フィールド名textを昇順に並び替えた結果

フィールド名textを降順に並び替え

SELECT * FROM mytable ORDER BY TEXT DESC
 

textのデータが降順に並びました。(漢字の扱いについては別途触れます)

フィールド名textを降順に並び替えた結果

 

3. 値段を並び替える場合

次は、値段となるpriceの箇所を並び替えてみます。

フィールド名priceを昇順に並び替え

SELECT * FROM mytable ORDER BY price ASC
 

priceの値が昇順に並び替えられました。

フィールド名priceを昇順に並び替えた結果

 

フィールド名priceを降順に並び替え

SELECT * FROM mytable ORDER BY price DESC
 

priceの値が降順に並び替えられました。

フィールド名priceを降順に並び替えした結果

 

【重要】テキストを並び替えるときの注意点

テキストを並び替える際の注意点として、コンピューターは

  1. ひらがな
  2. カタカナ
  3. 漢字

上記の並び替えを正しく行うことはできません。(ひらがな・カタカナ・漢字の区別ができないため)

 

たとえば以下テーブルの、

並び替えの対象となるテーブル

フィールド「TEXT2」を昇順にするとしましょう。

 

SELECT * FROM mytable ORDER BY TEXT2 ASC

 

すると、読みがなに対して並びの順がバラバラなんすよね。

 

ORDER BYは漢字だと区別がつかない

 

漢字をORDER BY句で並び替える方法

なので、テーブル内に漢字が含まれる場合は、

  1. 別にカラムを作成
  2. 読みがなを入力

といったことを行って

読みがなカラムを作成した画像

 

そのカラムの並び替えを行ってあげると良いっす。

SELECT * FROM mytable ORDER BY YOMI ASC

 

漢字のよみがなで並び替わった画像

 

あとは「ひらがな」だったら「ひらがなだけの文字列」、カタカナだったら「カタカナだけの文字列」といった感じで統一すれば後からの管理が捗りそうです。

補足
ランキングなどの管理を行うときは、CVなどの獲得数などで並び替えの管理を行うのがオススメ。

まとめ

MySQLでORDER BY句を使ったテーブルの並び替えの方法でした。

 

漢字の並び替えについては、ちょっと工夫が必要ですね。

OYAKUN
OYAKUN
次回はレコード操作したら日時更新されるDATETIME型の設定方法について記します!

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

>MySQLのWHEREとLIKE演算子でデータ検索する方法

>MySQLでWHERE句使ってデータ抽出する手順

>MySQLでカラム追加・削除をする方法(phpMyAdmin)

コメント

タイトルとURLをコピーしました