MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで複数の列を並べ替える方法|ORDER BY句の使い方を解説

MySQLでは、ORDER BY句を使うことで、1つまたは複数の列を基準に結果セットを並べ替えることができます。複数の列を指定する場合は、列名をカンマで区切って記述します。最初に指定した列が優先され、同じ値を持つ行については、次に指定した列の順序で並べ替えられる仕組みです。

まずは、サンプル用のテーブルを作成しましょう。

mysql> create table DemoTable
    -> (
    -> Id int,
    -> Value int
    -> );
Query OK, 0 rows affected (0.68 sec)

続いて、insertコマンドを使用してテーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable values(100,85885);
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values(101,885995474);
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable values(100,895943);
Query OK, 1 row affected (0.20 sec)

select文ですべてのレコードを表示してみます。

mysql> select *from DemoTable;

出力結果

上記のクエリを実行すると、次のような出力が得られます。

+------+-----------+
| Id   | Value     |
+------+-----------+
|  100 |     85885 |
|  101 | 885995474 |
|  100 |    895943 |
+------+-----------+
3 rows in set (0.00 sec)

まずは基本として、Value列を降順(DESC)で並べ替えるクエリを見てみましょう。

mysql> select Id,Value from DemoTable order by Value DESC;

出力結果

+------+-----------+
| Id   | Value     |
+------+-----------+
|  101 | 885995474 |
|  100 |    895943 |
|  100 |     85885 |
+------+-----------+
3 rows in set (0.00 sec)

さらに、複数の列を組み合わせて並べ替えることも可能です。たとえば、Id列を昇順(ASC)、その中でValue列を降順(DESC)に並べ替えるには、次のように記述します。

mysql> select Id,Value from DemoTable order by Id ASC, Value DESC;

出力結果

+------+-----------+
| Id   | Value     |
+------+-----------+
|  100 |    895943 |
|  100 |     85885 |
|  101 | 885995474 |
+------+-----------+
3 rows in set (0.00 sec)

このように、ORDER BY句に複数の列をカンマ区切りで指定することで、段階的な並べ替えを実現できます。各列ごとに個別にASC(昇順)またはDESC(降順)を指定できるため、柔軟なデータ取得が可能になります。大量のデータを扱う際や、レポート作成時に見やすい順序で結果を整えたい場合に非常に便利な機能なので、ぜひ活用してみてください。

  1. MySQLでORDER BY FIELD()を使ったカスタムソートを実行する方法

    MySQLでカスタムソートを行うにはMySQLで独自の順序に従ってレコードを並び替えたい場合、ORDER BY FIELD() を使用します。FIELD()関数は、指定した値のリストの順番に基づいて各レコードの位置を返すため、任意の順序でのソートが可能になります。まず、テーブルを作成しましょう。mysql> create table DemoTable    -> (    -> Id int    -> ); Query OK, 0 rows affected (0.82 sec)サンプルデータの挿入INSE

  2. MySQLで1つのINSERT文を使って列に複数の値を一括挿入する方法

    はじめにMySQLでは、1つのINSERT文を繰り返し実行しなくても、単一のクエリだけで同じ列に複数の値を挿入できます。VALUES句の後ろに、挿入したい値をカンマ区切りのタプル(行)として列挙するだけです。この方法はデータベースへの接続回数を減らせるため、大量のデータを登録する際にパフォーマンス面でも大きなメリットがあります。基本構文複数の値を1つの列に挿入する場合の基本構文は以下のとおりです。INSERT INTO テーブル名 VALUES(値1),(値2),...,(値N);このように、各値を丸括弧で囲み、カンマ(,)で区切って並べることで、1回のクエリで複数行をまとめて挿入できます。実