MySQL:ORDER BY句でデータを昇順、降順にソート

MySQLでデータをソートして取得したい場合があります。

ORDER BY句を使用すると取得するデータを指定したフィールドで
昇順降順ソートしながら取得することができます。
昇順でソートする場合は「ASC」を指定し、降順でソートする場合は「DESC」を指定します。

データベースのデータを取得してからプログラムでソートするよりは、
データ取得時にソートして処理する方がいいと思います。

下記にSELECT文ORDER BY句を使用しデータを昇順降順ソートして取得する時の使用方法をメモします。


ORDER BY句でデータをソート(昇順・降順)

※データが下記の場合

MySQL_ORDER_BY_1

・昇順でソートする場合(ASC)

昇順でソートするフィールドにASCを指定します。

SELECT * FROM sample ORDER BY name ASC;

「ASC」を指定しない場合は昇順でソートされます。

SELECT * FROM sample ORDER BY name;

MySQL_ORDER_BY_2

・降順でソートする場合(DESC)

降順でソートするフィールドにDESCを指定します。

SELECT * FROM sample ORDER BY name DESC;

MySQL_ORDER_BY_3


ORDER BYを複数指定してソートする場合

ORDER BYを複数指定する場合は、優先順位の高いものから順番に「,」で区切って指定します。
下記は「name」を昇順ソートし、「id」を降順ソートした場合です。

SELECT * FROM sample ORDER BY name ASC, id DESC;

MySQL_ORDER_BY_4


ORDER BYとLIMITを使用する場合

ORDER BYとLIMITを組み合わせた場合は下記のように記述します。
ORDER BYはLIMITよりも前に記述しないとエラーが起きるので注意です。

SELECT * FROM sample ORDER BY id DESC LIMIT 5;

MySQL_ORDER_BY_5