MySQLのCASE WHENで0と1の値を持つ列に条件を設定する方法
MySQLで条件を設定するには、CASE WHENステートメントを使用します。本記事では、0または1の値を持つ複数の列に対して条件を設定し、その合計値に応じてステータスを判定する方法を、具体的なサンプルコードとともに解説します。
1. テーブルを作成する
まず、CREATE TABLE文でサンプル用のテーブルを作成します。
mysql> create table DemoTable
-> (
-> Value1 int,
-> Value2 int,
-> Value3 int,
-> Value4 int
-> );
Query OK, 0 rows affected (0.98 sec)
2. レコードを挿入する
続いて、INSERTコマンドを使ってテーブルにレコードを追加します。
mysql> insert into DemoTable values(1,0,1,1);
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values(1,0,1,0);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(1,1,1,1);
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values(0,0,0,0);
Query OK, 1 row affected (0.15 sec)
3. テーブルの内容を確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select * from DemoTable;
実行すると、以下のような結果が出力されます。
+--------+--------+--------+--------+
| Value1 | Value2 | Value3 | Value4 |
+--------+--------+--------+--------+
| 1 | 0 | 1 | 1 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 |
| 0 | 0 | 0 | 0 |
+--------+--------+--------+--------+
4 rows in set (0.00 sec)
4. CASE WHENで条件を設定する
ここからが本題です。MySQLで0または1の値を持つ列に条件を設定するには、以下のようにCASE WHENステートメントを記述します。この例では、4つの列(Value1〜Value4)の合計値が2未満の場合に「NotGood」、それ以外の場合に「Good」というステータスを表示しています。
mysql> select case when Value1+Value2+Value3+Value4 < 2 then 'NotGood' else 'Good' end as Status from DemoTable;
実行結果は以下の通りです。
+---------+
| Status |
+---------+
| Good |
| Good |
| Good |
| NotGood |
+---------+
4 rows in set (0.00 sec)
まとめ
CASE WHENステートメントを使えば、列の値を組み合わせた柔軟な条件判定をSQLだけで実現できます。上記の例では単純な合計値との比較を行いましたが、THENやELSEに任意の文字列や数値を指定できるため、フラグ管理や評価ロジックなど、さまざまな場面で活用できます。ぜひ実際の開発でも試してみてください。
-
MySQLでENUM型の値にカスタムメッセージを表示する方法
MySQLでENUM型の値にカスタムメッセージを表示する方法MySQLでは、IF関数による条件分岐を使うことで、ENUM型の値に応じたカスタムメッセージを簡単に表示できます。ここでは、実際のサンプルを使いながら、テーブル作成からメッセージ表示までの手順を順番に解説します。1. テーブルを作成するまず、サンプル用のテーブルを作成しましょう。isActive列には「Y」「N」の2つの値を持つENUM型を定義しています。mysql> create table DemoTable1992 ( ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY
-
MySQLで列にENUM型を設定する方法
```html MySQLでは、テーブルを作成する際に、あらかじめ決められた文字列のリストから値を選ばせたい列に対してENUM型を設定できます。ENUMは、指定した候補値以外のデータが登録されるのを防ぎたい場合に便利なデータ型です。ここでは、実際にテーブルを作成しながら基本的な使い方を見ていきましょう。ENUM型を含むテーブルを作成するまず、学生の点数と合否ステータスを管理するテーブルを作成します。「StudentStatus」列には「First」「Second」「Fail」の3つの値のみを許可するENUM型を設定しています。mysql> create table DemoTable20