MySQL จัดเก็บค่า ENUM ภายในเป็นคีย์จำนวนเต็ม (หมายเลขดัชนี) เพื่ออ้างอิงสมาชิก ENUM เหตุผลหลักที่ไม่ควรเก็บค่าตัวเลขในคอลัมน์ ENUM คือ MySQL จะอ้างอิงถึงดัชนีแทนค่า และในทางกลับกัน
ตัวอย่าง
ตัวอย่างต่อไปนี้ชี้แจงได้:
mysql> CREATE TABLE enmtest(Val ENUM('0','1','2'));
Query OK, 0 rows affected (0.18 sec)
mysql> INSERT INTO enmtest VALUES ('1'), (1);
Query OK, 2 rows affected (0.19 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM enmtest;
+-----+
| Val |
+-----+
| 1 |
| 0 |
+-----+
2 rows in set (0.00 sec)
ที่นี่ เราแทรก '1' เป็นสตริง และโดยบังเอิญแทรก 1 เป็นตัวเลข (ไม่มีเครื่องหมายคำพูด) MySQL นำอินพุตตัวเลขของเราไปใช้เป็นค่าดัชนี กล่าวคือ การอ้างอิงภายในไปยังรายการแรกในสมาชิก (คือ '0')