MySQLのORDER BY句を使ってデータを昇順・降順で取得する方法

今回はMySQLのORDER BY句を使ってデータを昇順・降順で取得する方法を紹介します。

データを取得した後ソートするプログラムを書いてもいいのですが、取得時にソートすることも可能なので取得時にソートしてしまった方が手っ取り早いです。

データを昇順・降順でソートして取得するにはSELECT分でORDER BY句を使用します。

 

昇順でソートする方法

昇順でソートしてデータを取得するにはASCを指定します。

SELECT * FROM sample ORDER BY name ASC;

 

ORDER BY句でソートする基準の列を指定し、ASCを指定すると昇順でソートされます。

ASCを指定しなくてもデフォルトで昇順でソートされるのであまり意味はないですね…

 

降順でソートする方法

昇順でソートしてデータを取得するにはDESCを指定します。

SELECT * FROM sample ORDER BY name DESC;

同じくORDER BY句でソートする基準の列を指定し、DESCを指定すると降順でソートされます。

 

基準を複数指定してソートする場合

基準を複数指定してソートしたい場合は優先順位の高い基準から順番に「,」で区切って指定します。

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

この場合、nameを昇順でソートし、idは出来るだけ降順でソートすることになります。

例えばnameを昇順でソートして順番が同じようになった箇所は、idを基準に降順でソートするといった感じです。

 

取得するデータ数を制限する

LIMIT句を指定すると取得するデータ数を制限することができます。もちろんORDER BYと組み合わせて指定することも可能です。

SELECT * FROM sample ORDER BY id DESC LIMIT 5;

 

この場合、idを降順でソートし、データを5つだけ取得するようにLIMITで制限しています。