カテゴリ: MySQL 更新日: 2026/01/14

MySQLで複数カラムのORDER BYを使う方法を完全解説|初心者でもわかるSQL並び替え入門

MySQLで複数カラムのORDER BYを使う方法
MySQLで複数カラムのORDER BYを使う方法

先生と生徒の会話形式で理解しよう

生徒

「MySQLで並び替えはできるようになったんですけど、同じ年齢の人がいると順番がよく分からなくて…」

先生

「それはORDER BYを1つだけ使っているからですね。複数の列を使って並び替えることもできますよ。」

生徒

「えっ、並び替えって1つの項目だけじゃないんですか?」

先生

「名簿を年齢順にして、さらに名前順に並べるイメージです。紙の名簿と同じ感覚で考えましょう。」

1. SQLとは何か?

1. SQLとは何か?
1. SQLとは何か?

SQLは、データベースという「大量の情報を整理して保存する箱」に対して命令を出すための言語です。 データベースの中では、情報が表の形で管理されています。 例えば、会員名簿、社員一覧、商品のリストなどが代表的な例です。

MySQLは、そのSQLを使って操作できるデータベースソフトの一つで、初心者からプロまで幅広く使われています。

2. ORDER BYの基本をおさらいしよう

2. ORDER BYの基本をおさらいしよう
2. ORDER BYの基本をおさらいしよう

ORDER BYは、データの表示順を指定するための命令です。 年齢順、名前順、登録順など、見やすい形に並び替えることができます。

これまで学んだORDER BYでは、1つの列だけを基準に並び替えていました。 しかし実際の名簿や一覧表では、1つの条件だけでは足りない場面がよくあります。

3. サンプルとなるテーブルを確認しよう

3. サンプルとなるテーブルを確認しよう
3. サンプルとなるテーブルを確認しよう

ここではusersテーブルを使って、複数カラムのORDER BYを説明します。 会員情報が入った名簿だと考えてください。


id | name       | age | email
---+------------+-----+-----------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 25  | ichiro@example.com
4  | 高橋美咲   | 19  | misaki@example.com
5  | 田中健一   | 30  | ken@example.com

4. 複数カラムのORDER BYとは何か

4. 複数カラムのORDER BYとは何か
4. 複数カラムのORDER BYとは何か

複数カラムのORDER BYとは、並び替えの基準を2つ以上指定する方法です。 まず1つ目の列で並び替えを行い、同じ値のデータがあった場合に、次の列でさらに並び替えます。

これは、名簿を「年齢順」に並べてから、「同じ年齢の人を名前順」に整える作業と同じです。 人が紙の名簿で自然にやっていることを、MySQLに指示しているだけです。

5. 年齢順に並べて、同じ年齢は名前順にする方法

5. 年齢順に並べて、同じ年齢は名前順にする方法
5. 年齢順に並べて、同じ年齢は名前順にする方法

まずは年齢を基準に昇順で並び替え、年齢が同じ人は名前順に並べてみましょう。 ORDER BYでは、列名をカンマで区切って書きます。


SELECT *
FROM users
ORDER BY age ASC, name ASC;

id | name       | age | email
---+------------+-----+-----------------------
4  | 高橋美咲   | 19  | misaki@example.com
2  | 佐藤花子   | 19  | hanako@example.com
1  | 山田太郎   | 25  | taro@example.com
3  | 鈴木一郎   | 25  | ichiro@example.com
5  | 田中健一   | 30  | ken@example.com

6. 並び替えの優先順位を理解しよう

6. 並び替えの優先順位を理解しよう
6. 並び替えの優先順位を理解しよう

複数カラムのORDER BYでは、左から順番に優先されます。 一番左に書いた列が最も重要な並び替え条件です。

今回の例では、まずageで並び替えが行われ、 ageが同じデータだけに対してnameの並び替えが適用されています。 この考え方を理解すると、複雑な並び替えも怖くなくなります。

7. 昇順と降順を組み合わせる方法

7. 昇順と降順を組み合わせる方法
7. 昇順と降順を組み合わせる方法

複数カラムのORDER BYでは、それぞれの列に対して昇順や降順を指定できます。 例えば、「年齢は高い順、同じ年齢なら名前はあいうえお順」にしたい場合です。


SELECT *
FROM users
ORDER BY age DESC, name ASC;

id | name       | age | email
---+------------+-----+-----------------------
5  | 田中健一   | 30  | ken@example.com
1  | 山田太郎   | 25  | taro@example.com
3  | 鈴木一郎   | 25  | ichiro@example.com
4  | 高橋美咲   | 19  | misaki@example.com
2  | 佐藤花子   | 19  | hanako@example.com

8. 複数カラムORDER BYを使うときの注意点

8. 複数カラムORDER BYを使うときの注意点
8. 複数カラムORDER BYを使うときの注意点

ORDER BYは、SELECT文の最後に書くというルールがあります。 また、列名の順番を間違えると、意図しない並び方になることがあります。

複数カラムのORDER BYは、検索結果を見やすく整理するためにとても重要な機能です。 名簿、一覧画面、管理画面など、実際のシステムでも頻繁に使われています。

カテゴリの一覧へ
新着記事
New1
MySQL
【MySQL入門】LIMITとは何か?SELECT文で取得件数を制限する方法を初心者向けに徹底解説
New2
PostgreSQL
PostgreSQLのMAX・MIN完全解説|集約関数とGROUP BYで最大値・最小値を抽出する方法
New3
MySQL
MySQLのORDER BYで文字列を並び替える方法と注意点を徹底解説|SQL初心者向け完全ガイド
New4
PostgreSQL
PostgreSQLのSUM・AVG完全解説|集約関数とGROUP BYの計算時の注意点を初心者向けにやさしく説明
人気記事
No.1
Java&Spring記事人気No1
PostgreSQL
PostgreSQLのUPDATE文の使い方(部分更新・条件更新)
No.2
Java&Spring記事人気No2
PostgreSQL
PostgreSQLスキーマ作成・削除完全ガイド!初心者でもわかるデータベース設計の基礎
No.3
Java&Spring記事人気No3
PostgreSQL
PostgreSQLでスキーマを分割するメリット
No.4
Java&Spring記事人気No4
PostgreSQL
PostgreSQLとは?初心者向けに特徴をわかりやすく解説
No.5
Java&Spring記事人気No5
PostgreSQL
PostgreSQLの主キー・外部キーを完全解説!初心者でもわかる設定方法と考え方
No.6
Java&Spring記事人気No6
PostgreSQL
PostgreSQLのpublicスキーマの役割と扱い方
No.7
Java&Spring記事人気No7
PostgreSQL
PostgreSQLのORDER BYの基本(昇順・降順)
No.8
Java&Spring記事人気No8
PostgreSQL
PostgreSQLでよく使うデータ型一覧(文字列・数値・日付)