小技プログラミング

SELECT文でデータを昇順/降順ソートして取得する

SELECT文でデータを昇順/降順ソートして取得する方法です。

SELECT文でデータを取得する場合、何も指定しなければデータベースに入っている順番で取得します。
その為、並び替える必要がある場合にそのままデータを取得してしまうとプログラムで並び変える事になってしまい手間が掛かります。

この様な時は ORDER BY句を利用することで、データ取得時に好きなカラムでソートすることが出来ます。

基本構文は ORDER BY カラム名1,カラム名2 ASC / DESC です。
ORDER BY句に指定するカラム名は、ソートする優先順に並べて行きます。
最後の ASC / DESC で昇順か降順かを指定します。
昇順ソートする場合は ASC、降順ソートする場合は DESC を指定します。

ちなみに SELECT で指定されていないカラム名を ORDER BY 句に指定する事は出来ません。
データベース上でソートする訳ではなく、取得したデータでソートするため、ソートで使うカラムは SELECT にもカラム名を指定してデータを取得しておく必要があります。

○カラム名1で昇順ソートして取得
SELECT カラム名1,カラム名2
FROM テーブル名1
WHERE カラム名 = '値'
ORDER BY カラム名1 ASC

○カラム名1,カラム名2の順に降順ソートして取得
SELECT カラム名1,カラム名2
FROM テーブル名1
WHERE カラム名 = '値'
ORDER BY カラム名1,カラム名2 DESC

※ASC/DESCは省略可能です。
ASC/DESCの指定を省略した場合は、デフォルト値としてASC(昇順)が適用されます。