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)