MySQLのORDER BYは、取り出したデータを並び替えるために使います!
基本的には昇順か降順の2通りなので簡単につかこなせると思います。
【使い方】
SELECT 列名
FROM テーブル名
ORDER BY 列名 [ASK|DESC];
ASC:(昇順):小さい順
DESC:(降順):大きい順
指定しなければデフォルトでASCになります。
データ(products)
ID | 商品名 | カテゴリ | 価格 |
---|---|---|---|
1 | りんご | 食品 | 120 |
2 | バナナ | 食品 | 100 |
3 | シャツ | 衣類 | 1500 |
4 | ズボン | 衣類 | 3000 |
5 | 洗濯機 | 家電 | 25000 |
6 | テレビ | 家電 | 40000 |
7 | 電子レンジ | 家電 | 15000 |
早速ですが実際に使ってみましょう!!
※1.2については解説も省きます
1.価格の昇順で並べる
SELECT *
FROM products
ORDER BY `価格` ASC;
ID | 商品名 | カテゴリ | 価格 |
---|---|---|---|
2 | バナナ | 食品 | 100 |
1 | りんご | 食品 | 120 |
3 | シャツ | 衣類 | 1500 |
4 | ズボン | 衣類 | 3000 |
7 | 電子レンジ | 家電 | 15000 |
5 | 洗濯機 | 家電 | 25000 |
6 | テレビ | 家電 | 40000 |
2.商品名の降順で並べる
SELECT *
FROM products
ORDER BY `商品名` DESC;
ID | 商品名 | カテゴリ | 価格 |
---|---|---|---|
7 | 電子レンジ | 家電 | 15000 |
6 | テレビ | 家電 | 40000 |
5 | 洗濯機 | 家電 | 25000 |
4 | ズボン | 衣類 | 3000 |
3 | シャツ | 衣類 | 1500 |
2 | バナナ | 食品 | 100 |
1 | りんご | 食品 | 120 |
3.カテゴリごとに昇順、カテゴリ内で価格の降順
SELECT *
FROM products
ORDER BY `カテゴリ` ASC, `価格` DESC;
ID | 商品名 | カテゴリ | 価格 |
---|---|---|---|
4 | ズボン | 衣類 | 3000 |
3 | シャツ | 衣類 | 1500 |
6 | テレビ | 家電 | 40000 |
5 | 洗濯機 | 家電 | 25000 |
7 | 電子レンジ | 家電 | 15000 |
1 | りんご | 食品 | 120 |
2 | バナナ | 食品 | 100 |
【解説】
ACS|DESCが二つになると
①先に書いた要素
②後に書いた要素
とした時に①を優先的に並び替えをして、
①の要素が被っている要素の時その中で②の並び替えをします。
ですので、
①であるカテゴリが全体として綺麗に並び、
②である価格がカテゴリごとの中で綺麗に並び替えされています。
【まとめ】
ORDER BYは、結果を見やすく並べるための非常に重要なSQL文です。特に金額の大きい順、小さい順、名前順など、ユーザーにとってわかりやすい表示が可能になります。
使い方も簡単なのですぐ取り入れて表示データを見やすくしましょう!!
コメント