はじめに
学んだSQL関係の知識を、忘れないように定期的にQiitaにアウトプットしています。
今回は、数字のデータを元に、テーブルのデータを並び替えて表示させる方法をいくつか紹介します。
使用するテーブル
使用するテーブルのデータは、以下のようになっています。
+----+-----------------------+------------+------------+-----------+----------+
| id | name | sauna_temp | water_temp | area | sex |
+----+-----------------------+------------+------------+-----------+----------+
| 1 | ウェルビー栄 | 90 | 16 | 愛知 | 男性 |
| 2 | 湯ラックス | 93 | 12 | 熊本 | 男女OK |
| 3 | ウェルビー福岡 | 85 | 16 | 福岡 | 男女OK |
| 4 | サウナイーグル | 110 | 7 | 愛知 | 男性 |
| 5 | かるまる池袋 | 100 | 5 | 東京 | 男性 |
| 6 | スカイスパ | 70 | 16 | 神奈川 | 男性 |
| 7 | サウナラボ | 70 | 22 | 愛知 | 女性 |
| 8 | ウェルビー名駅 | 80 | 18 | 愛知 | 男性 |
+----+-----------------------+------------+------------+-----------+----------+
数値が小さい順に並べる方法
sauna_tempというカラムの数値が小さい順に並べたい!という時は、以下のようなコマンドを使用します。
「ORDER BY」を使用することで、対象のカラムの数値が小さい順に並び替えて表示することができます。
SELECT name,sauna_temp FROM tables ORDER BY sauna_temp;
-- SELECT <表示させたいカラム名> FROM <対象テーブル名> ORDER BY <対象のカラム>;
+-----------------------+------------+
| name | sauna_temp |
+-----------------------+------------+
| スカイスパ | 70 |
| サウナラボ | 70 |
| ウェルビー名駅 | 80 |
| ウェルビー福岡 | 85 |
| ウェルビー栄 | 90 |
| 湯ラックス | 93 |
| かるまる池袋 | 100 |
| サウナイーグル | 110 |
+-----------------------+------------+
数値が大きい順に並べる方法
数値が大きい順にデータを並べたい際は、先ほどの「ORDER BY」に加えて、「DESC」というコマンドを入れることで実現します。
SELECT name,sauna_temp FROM tables ORDER BY sauna_temp DESC;
-- SELECT <表示させたいカラム名> FROM <対象テーブル名> ORDER BY <対象のカラム> DESC;
+-----------------------+------------+
| name | sauna_temp |
+-----------------------+------------+
| サウナイーグル | 110 |
| かるまる池袋 | 100 |
| 湯ラックス | 93 |
| ウェルビー栄 | 90 |
| ウェルビー福岡 | 85 |
| ウェルビー名駅 | 80 |
| スカイスパ | 70 |
| サウナラボ | 70 |
+-----------------------+------------+
表示させる数を指定する
例えば、データの個数が多すぎて全部のデータを表示させたくはないけど、トップ5だけを抽出したいなあ、、、という場面があるかもしれません。そうゆう時は、「LIMIT」を使用すれば効率良くデータを表示させることができます。
以下は、sauna_tempの数値が大きいものを5つだけ表示させたい場合です。
SELECT name,sauna_temp FROM tables ORDER BY sauna_temp DESC LIMIT 5;
+-----------------------+------------+
| name | sauna_temp |
+-----------------------+------------+
| サウナイーグル | 110 |
| かるまる池袋 | 100 |
| 湯ラックス | 93 |
| ウェルビー栄 | 90 |
| ウェルビー福岡 | 85 |
+-----------------------+------------+