MySQL में, जैसा कि हम जानते हैं कि प्रत्येक ENUM मान एक इंडेक्स नंबर से जुड़ा होता है। ENUM मानों को सॉर्ट करने का आधार भी उनका इंडेक्स नंबर होता है। इसके अलावा, इंडेक्स नंबर कॉलम स्पेसिफिकेशन में एन्यूमरेशन सदस्यों को सूचीबद्ध किए गए क्रम पर निर्भर करते हैं। उदाहरण के लिए, ENUM ('GOOD', 'EXCELLENT') कॉलम में, 'GOOD' 'EXCELLENT' से पहले सॉर्ट होता है। दूसरे शब्दों में, हम कह सकते हैं कि 'GOOD' का इंडेक्स नंबर '1' होगा और 'EXCELLENT' का इंडेक्स नंबर '2' होगा।
MySQL ENUM में खाली स्ट्रिंग और NULL मान भी स्टोर कर सकता है। यह खाली स्ट्रिंग को नॉन-खाली स्ट्रिंग से पहले और 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 सॉर्टेड आउटपुट लौटाता है। हम देख सकते हैं कि आउटपुट इंडेक्स नंबर के आधार पर सॉर्ट किया गया है।
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)