メモ:ENUM型をフラグにするのどうなんだろうと思った件

tagomorisさんが書いたMySQL Casual Advent Calendar 20131日目の記事を読んで、なんとなくやってみた。深くは考えていないのでトラップがあるかも。

mysql> CREATE TABLE flg(id SERIAL, flg1 ENUM("1") NOT NULL);
Query OK, 0 rows affected (0.06 sec)

mysql> INSERT INTO flg(flg1) VALUES (0), (1), (2), (''), ('1');
Query OK, 5 rows affected, 3 warnings (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 3

Warning (Code 1265): Data truncated for column 'flg1' at row 1
Warning (Code 1265): Data truncated for column 'flg1' at row 3
Warning (Code 1265): Data truncated for column 'flg1' at row 4

mysql> SELECT * FROM flg WHERE flg1 = 0;
+----+------+
| id | flg1 |
+----+------+
|  1 |      |
|  3 |      |
|  4 |      |
+----+------+
3 rows in set (0.00 sec)

mysql> SELECT * FROM flg WHERE flg1 = 1;
+----+------+
| id | flg1 |
+----+------+
|  2 | 1    |
|  5 | 1    |
+----+------+
2 rows in set (0.00 sec)