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

MySQLで結果セットに含まれない列を基準に出力をソートする方法

MySQLでは、SELECT文で取得していない列、つまり結果セットに含まれていない列を基準にしても、出力をソートすることが可能です。その方法は非常にシンプルで、必要なフィールドだけを選択しつつ、ORDER BY句にはソートの基準としたい列名を指定するだけです。

以下の例では、「Student」テーブルから「Name(名前)」と「Subject(科目)」の2つのフィールドのみを取得していますが、結果セットには存在しない「id」列を基準にソートを行っています。

mysql> Select Name, Subject From Student ORDER BY Id;
+---------+-----------+
| Name    | Subject   |
+---------+-----------+
| Gaurav  | Computers |
| Aarav   | History   |
| Harshit | Commerce  |
| Raman   | Computers |
+---------+-----------+
4 rows in set (0.00 sec)

昇順・降順を指定する

さらに、DESC(降順)やASC(昇順)キーワードを組み合わせることで、ソートの方向を自由に制御できます。例えば、同じく結果セットに含まれない「id」列を基準に、降順で並べ替える場合は次のように記述します。

mysql> Select Name, Subject from Student ORDER BY Id DESC;
+---------+-----------+
| Name    | Subject   |
+---------+-----------+
| Raman   | Computers |
| Harshit | Commerce  |
| Aarav   | History   |
| Gaurav  | Computers |
+---------+-----------+
4 rows in set (0.00 sec)

ポイントまとめ

  • ORDER BY句には、SELECT句で指定していない列も使用できる。
  • デフォルトは昇順(ASC)であり、降順にしたい場合はDESCを明示的に指定する。
  • この機能により、表示するデータと並べ替えの基準を柔軟に分けることができ、IDなど内部管理用の列を出力せずに整序された結果を得られる。
  1. MySQLで結果セットを指定した順序どおりに取得する方法

    MySQLでIN句を使ってレコードを取得すると、通常はテーブル内の格納順どおりに結果が返されます。しかし、「指定した値の並び順どおりに結果セットを取得したい」というケースもあります。そんなときは、FIND_IN_SET()関数とORDER BY句を組み合わせることで簡単に実現できます。サンプルテーブルを作成するまず、動作確認用のテーブルを作成します。mysql> create table DemoTable1563 -> ( -> StudentId int, -> StudentName varchar(20) -> );Query OK

  2. MySQLで学生の点数に基づいてカスタムメッセージを表示する方法

    MySQLでは、CASE文を使うことで、点数などの数値データに応じてカスタムメッセージを動的に表示できます。この記事では、学生の点数が40点より大きいかどうかを判定し、「Good Marks」または「Not Good Marks」というメッセージを出力する具体的な手順を解説します。 1. サンプルテーブルを作成する まず、点数を格納するためのテーブルを作成しましょう。 mysql> create table DemoTable1952 ( Marks int ); Query OK, 0 rows affected (0.00 sec) 2. テストデータを挿入す