MySQLのENUM列で引用符付きの値を条件に一致させる方法
MySQLでは、ENUM型のカラムに対して引用符(シングルクォート)で囲んだ文字列値を指定して検索・集計することができます。本記事では、ENUM型カラムを持つテーブルを作成し、引用符付きの値を使ってレコードを抽出・カウントする手順を、実際のSQL文と実行結果とともに解説します。
ENUM型カラムを持つテーブルを作成する
まず、「isMarried」というENUM型カラムを持つテーブルを作成します。ENUMには「'1'」と「'0'」という2つの値のみを許容するよう定義します。
mysql> create table DemoTable(
isMarried ENUM('1','0')
);
Query OK, 0 rows affected (0.46 sec)
INSERTコマンドでレコードを挿入する
次に、insertコマンドを使用してテーブルに複数のレコードを挿入します。ここでは「'0'」と「'1'」を交互に登録していきます。
mysql> insert into DemoTable values('0');
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable values('1');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('1');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('0');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('0');
Query OK, 1 row affected (1.00 sec)
mysql> insert into DemoTable values('1');
Query OK, 1 row affected (0.07 sec)
mysql> insert into DemoTable values('0');
Query OK, 1 row affected (0.09 sec)
SELECT文ですべてのレコードを表示する
select文を実行して、テーブル内の全レコードを確認します。
mysql> select *from DemoTable;
上記のクエリを実行すると、以下のような出力が得られます。
+-----------+ | isMarried | +-----------+ | 0 | | 1 | | 1 | | 0 | | 0 | | 1 | | 0 | +-----------+ 7 rows in set (0.00 sec)
引用符付きの値でレコード数をカウントする
ここが本題となるポイントです。WHERE句で「isMarried='0'」のように、引用符で囲んだ値を条件として指定することで、該当するレコードの件数をcount(*)で取得できます。
mysql> select count(*) from DemoTable where isMarried='0';
このクエリを実行すると、以下の出力が得られます。
+----------+ | count(*) | +----------+ | 4 | +----------+ 1 row in set (0.06 sec)
まとめ
ENUM型のカラムは内部的にインデックス(整数値)として管理されていますが、WHERE句では「'0'」のように引用符で囲んだ文字列値をそのまま指定できます。今回の例では、7件中4件が「'0'」に該当したため、count(*)の結果として「4」が返されました。ENUM型を扱う際は、このように文字列リテラルでの比較が可能であることを覚えておくと便利です。
-
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