カテゴリ: 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
PostgreSQL
PostgreSQLのLIMIT・OFFSETとパフォーマンス問題を完全解説|初心者でもわかる安全な使い方
New2
MySQL
MySQLのUPDATE文でデータを更新する基本を徹底解説|SQL初心者でもわかるデータベース更新入門
New3
PostgreSQL
PostgreSQLのOFFSET完全入門|並び替えと組み合わせてデータをスキップする方法を初心者向けに解説
New4
MySQL
MySQLで複数行INSERTを行う方法と注意点を徹底解説|SQL基礎から学ぶデータベース入門
人気記事
No.1
Java&Spring記事人気No1
PostgreSQL
PostgreSQLのDISTINCT完全ガイド|SQLで重複データを除外する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
PostgreSQL
PostgreSQLの主キー・外部キーを完全解説!初心者でもわかる設定方法と考え方
No.3
Java&Spring記事人気No3
PostgreSQL
PostgreSQLのLEFT JOIN完全入門!不足データを補いながらテーブル結合する仕組みをやさしく解説
No.4
Java&Spring記事人気No4
PostgreSQL
PostgreSQLとは?初心者向けに特徴をわかりやすく解説
No.5
Java&Spring記事人気No5
PostgreSQL
PostgreSQLのUPDATE文の使い方(部分更新・条件更新)
No.6
Java&Spring記事人気No6
PostgreSQL
PostgreSQLスキーマ設計のベストプラクティス完全ガイド|初心者でもわかるデータベース整理術
No.7
Java&Spring記事人気No7
PostgreSQL
PostgreSQLの権限管理を完全解説|スキーマ単位で理解するデータベースセキュリティの基礎
No.8
Java&Spring記事人気No8
PostgreSQL
PostgreSQLのWHERE句を完全解説|初心者でもわかる条件指定の基本と使い方