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文です。特に金額の大きい順、小さい順、名前順など、ユーザーにとってわかりやすい表示が可能になります。
使い方も簡単なのですぐ取り入れて表示データを見やすくしましょう!!

コメント