ใน MySQL แต่ละค่า ENUM มีความเชื่อมโยงกับหมายเลขดัชนี พื้นฐานของการจัดเรียงค่า ENUM ก็คือหมายเลขดัชนีนั้น 由ด้วย หมายเลขดัชนีขึ้นอยู่กับลำดับที่สมาชิกการแจงนับถูกระบุในข้อกำหนดคอลัมน์ ตัวอย่างเช่น ในคอลัมน์ ENUM('GOOD', 'EXCELLENT') ค่า 'GOOD' จะถูกจัดเรียงก่อน 'EXCELLENT' หมายความว่าดัชนีของ 'GOOD' คือ 1 และ 'EXCELLENT' คือ 2
MySQL ยังสามารถจัดเก็บสตริงว่างและค่า NULL ลงใน ENUM ได้ ลำดับการจัดเรียงคือ: NULL ก่อน สตริงว่าง ตามด้วยสตริงที่ไม่ว่าง ดังนี้:
| ลำดับการจัดเรียงค่า ENUM |
|---|
| 1. NULL |
| 2. สตริงว่าง |
| 3. สตริงที่ไม่ว่าง |
ตัวอย่าง
ในตัวอย่างนี้ มีตาราง 'result' พร้อมคอลัมน์ ENUM 'grade' มีข้อมูลดังนี้:
mysql> SELECT * FROM Result; +-----+--------+-------+ | Id | Name | Grade | +-----+--------+-------+ | 100 | Gaurav | GOOD | | 101 | Rahul | POOR | | 102 | Rahul | NULL | | 103 | Mohan | | +-----+--------+-------+ 4 rows in set (0.00 sec)
ใช้ ORDER BY จะได้ผลลัพธ์ที่จัดเรียงตามดัชนี:
mysql> SELECT * FROM result ORDER BY grade; +-----+--------+-------+ | Id | Name | Grade | +-----+--------+-------+ | 102 | Rahul | NULL | | 103 | Mohan | | | 101 | Rahul | POOR | | 100 | Gaurav | GOOD | +-----+--------+-------+ 4 rows in set (0.00 sec)