MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのORDER BY句とは?基本的な使い方を実例付きで解説

MySQLのORDER BY句とは

MySQLのORDER BY句は、クエリの実行結果を特定の列の値に基づいて並べ替える(ソートする)ために使用します。ORDER BYキーワードの後には、並べ替えの基準となる列名を続けて記述する必要があります。

ここでは、例として「ratelist」というテーブルを「price」列を基準に並べ替えてみましょう。まず、テーブルの中身を確認します。

mysql> Select * from ratelist;
+----+------+-------+
| Sr | Item | Price |
+----+------+-------+
| 1  | A    |  502  |
| 2  | B    |  630  |
| 3  | C    | 1005  |
| 4  | h    |  850  |
| 5  | T    |  250  |
+----+------+-------+
5 rows in set (0.05 sec)

ORDER BY句を使った並べ替えの方法

このテーブルをprice列を基準に並べ替えるには、次のようにORDER BY句を使用します。

mysql> Select * from ratelist ORDER BY Price;
+----+------+-------+
| Sr | Item | Price |
+----+------+-------+
| 5  | T    |  250  |
| 1  | A    |  502  |
| 2  | B    |  630  |
| 4  | h    |  850  |
| 3  | C    | 1005  |
+----+------+-------+
5 rows in set (0.01 sec)

上記のクエリでは、price列の値を基準にテーブルが並べ替えられました。ORDER BY句で並べ替えの順序を明示的に指定しない場合、デフォルトの並び順である昇順(ASC)が適用されます。そのため、価格が小さいものから大きいものへと順に表示されています。

降順で並べ替えたい場合

逆に、値の大きいものから順に表示したい場合は、DESCキーワードを追加します。

mysql> Select * from ratelist ORDER BY Price DESC;

このように、ORDER BY句は「ASC(昇順)」と「DESC(降順)」を使い分けることで、柔軟にデータの並び順を制御できます。複数の列を組み合わせた並べ替えにも対応しており、データ分析やレポート作成の際に非常に便利な句です。

  1. MySQLでIN句に指定した順序どおりに行を取得する方法:FIND_IN_SET()の活用

    IN句の順序で行を取得するには?MySQLでは、IN句に指定した値の順序どおりに結果セットを取得したい場合、通常のクエリでは実現できません。そこで活躍するのが FIND_IN_SET() 関数です。この関数を ORDER BY 句と組み合わせることで、IN句で指定した値の並び順そのままに行をソートできます。基本構文SELECT yourVariableName.* FROM yourTableName yourVariableName WHERE yourVariableName.yourColumnName IN(value1,value2,...N) ORDER BY FIND_IN_SE

  2. MySQLのORDER BYで「カラム名 * 1」と書く目的とは?文字列型の数値を正しくソートする方法

    ORDER BY カラム名 * 1 の目的MySQLでは、ORDER BY句でカラム名に「* 1」を掛けることで、そのカラムの値を数値へ暗黙的に型変換させることができます。たとえば、VARCHAR型のカラムに「301」「23」「345」といった数値のような文字列が格納されている場合、通常のORDER BYでは文字列として辞書順(文字コード順)にソートされてしまいます。しかし「* 1」を付けることで値が数値として評価され、数値の大小順に正しくソートできるようになります。基本の構文は以下のとおりです。SELECT * FROM テーブル名ORDER BY カラム名 * 1;実際に動作を確認してみよ