MySQL-এ প্রতিটি ENUM মান একটি সূচক নম্বরের সাথে যুক্ত থাকে। ENUM মানগুলোর সর্টিংর ভিত্তিই হচ্ছে তাদের সূচক নম্বর। আবার সূচক নম্বরগুলো কলাম স্পেসিফিকেশনে এনুমারেশন সদস্যদের কী ক্রমে লিস্ট করা হয়েছে তার ওপর নির্ভর করে। উদাহরণস্বরূপ, ENUM ('GOOD', 'EXCELLENT') কলামে 'GOOD' 'EXCELLENT'-এর আগে সর্ট হবে। অর্থাৎ 'GOOD'-এর সূচক ১ এবং 'EXCELLENT'-এর সূচক ২।
MySQL ENUM-এ খালি স্ট্রিং এবং NULL মানও স্টোর করতে পারে। এটি খালি স্ট্রিংকে নন-খালি স্ট্রিংর আগে এবং NULL কে খালি স্ট্রিংর আগে সর্ট করে। তাই সর্টিং ক্রম হবে:
| ENUM মানগুলোর সর্টিং ক্রম |
|---|
| ১. NULL |
| ২. খালি স্ট্রিং |
| ৩. নন-খালি স্ট্রিং |
উদাহরণ
এখানে 'result' নামে একটি টেবিল আছে যার 'grade' ENUM কলাম। এই টেবিলে নিচের মানগুলো আছে:
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 সর্ট করা আউটপুট ফেরত দেয়। আমরা দেখতে পাচ্ছি আউটপুট সূচক নম্বরের ভিত্তিতে সর্ট হয়েছে:
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)