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

MySQLのCASE WHENとSELECTでIDが奇数か偶数かを判定して表示する方法

MySQLでは、SELECT文の中でCASE WHEN句を組み合わせることで、数値の奇数・偶数を簡単に判定し、結果として表示できます。この記事では、実際にテーブルを作成し、PageId(ページID)が奇数か偶数かを判定するクエリの書き方を順を追って解説します。

1. サンプルテーブルを作成する

まず、判定対象となるカラムを持つテーブルを作成しましょう。ここでは整数型の「PageId」カラムを持つテーブルを用意します。

mysql> create table DemoTable
(
    PageId int
);
Query OK, 0 rows affected (0.85 sec)

2. テストデータを挿入する

次に、INSERT文を使っていくつかのレコードを登録します。奇数と偶数が混在する値を入れておくと、動作確認がしやすくなります。

mysql> insert into DemoTable values(233);
Query OK, 1 row affected (0.36 sec)
mysql> insert into DemoTable values(34);
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(76);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(89);
Query OK, 1 row affected (0.26 sec)

3. 登録したレコードを確認する

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

mysql> select *from DemoTable;

実行すると、以下のような出力が得られます。

+--------+
| PageId |
+--------+
|    233 |
|     34 |
|     76 |
|     89 |
+--------+
4 rows in set (0.00 sec)

4. CASE WHENを使って奇数・偶数を判定する

ここが本題です。CASE WHEN句の中で剰余演算子(%)を使い、PageIdを2で割った余りが0でなければ奇数、0ならば偶数と判定します。

mysql> select PageId,
case when PageId %2 !=0 then 'PageIdは奇数です'
else 'PageIdは偶数です'
end AS Result
from DemoTable;

実行結果

+--------+------------------+
| PageId | Result           |
+--------+------------------+
|    233 | PageIdは奇数です |
|     34 | PageIdは偶数です |
|     76 | PageIdは偶数です |
|     89 | PageIdは奇数です |
+--------+------------------+
4 rows in set (0.00 sec)

クエリのポイント解説

  • 剰余演算子(%): PageId % 2は、PageIdを2で割った余りを返します。余りが1(または0以外)なら奇数、0なら偶数です。
  • CASE WHEN句: 条件に一致した場合(!=0)はTHEN以降の値を返し、それ以外はELSE以降の値を返します。
  • AS Result: 判定結果の列に「Result」という別名を付けており、出力を見やすくしています。

このように、CASE WHENとSELECTを組み合わせれば、追加のカラムを持たせることなく、SQLだけで柔軟に条件分岐した結果を取得できます。データの一覧表示やレポート作成など、さまざまな場面で活用できるテクニックなので、ぜひ覚えておきましょう。

  1. MySQLでGROUP BYを使ってグループ化し合計(SUM)を求める方法

    MySQLで合計を求めるには、集計関数SUM()を使用します。さらにGROUP BY句と組み合わせることで、特定のカラムごとにデータをグループ化し、それぞれのグループの合計値を取得できます。この記事では、商品名ごとに「数量 × 価格」の合計を求める例を通じて、GROUP BYとSUM()の基本的な使い方を解説します。 1. サンプルテーブルの作成 まず、以下のようにテーブルを作成します。 mysql> create table DemoTable -> ( -> ProductName varchar(20), -> ProductQuant

  2. MySQLのCASE WHENステートメントで条件別のカウントを実行する方法

    条件に応じてレコードをカウントしたい場合には、CASE WHENステートメントを活用すると便利です。この記事では、サンプルテーブルを作成し、SUM関数と組み合わせて条件別の件数を集計する手順を、実行結果つきでわかりやすく解説します。 1. サンプルテーブルの作成 まず、以下のコマンドでテーブルを作成しましょう。 mysql> create table DemoTable1910 ( FirstName varchar(20), Marks int ); Query OK, 0 rows affected (0.00 sec) 2. レコードの挿入 続い