MySQL का ORDER BY FIELD() फ़ंक्शन आपको पूर्वनिर्धारित क्रम में परिणामों को सॉर्ट करने की अनुमति देता है, न कि केवल आरोही या अवरोही क्रम में।
सिंटैक्स
SELECT * FROM टेबल_नाम ORDER BY FIELD(कॉलम_नाम, 'मान1', 'मान2', 'मान3', ...);
उदाहरण: नौकरी पदनाम को वरिष्ठता क्रम में सॉर्ट करना
1. टेबल बनाएं
mysql> CREATE TABLE DemoTable (
-> Designation VARCHAR(100)
-> );
2. डेटा डालें
mysql> INSERT INTO DemoTable VALUES('Software Engineer');
mysql> INSERT INTO DemoTable VALUES('Associate Software Engineer');
mysql> INSERT INTO DemoTable VALUES('Software Development Engineer');
mysql> INSERT INTO DemoTable VALUES('Product Manager');
3. डिफ़ॉल्ट क्रम (वर्णानुक्रम)
mysql> SELECT * FROM DemoTable;
+-------------------------------+ | Designation | +-------------------------------+ | Software Engineer | | Associate Software Engineer | | Software Development Engineer | | Product Manager | +-------------------------------+
4. कस्टम क्रम लागू करें
mysql> SELECT * FROM DemoTable
-> ORDER BY FIELD(Designation,
-> 'Associate Software Engineer',
-> 'Software Engineer',
-> 'Software Development Engineer',
-> 'Product Manager');
5. परिणाम (वरिष्ठता क्रम में)
+-------------------------------+ | Designation | +-------------------------------+ | Associate Software Engineer | | Software Engineer | | Software Development Engineer | | Product Manager | +-------------------------------+
महत्वपूर्ण बिंदु
- सूची में न मिलने वाले मान पहले आते हैं (मान 0)
- केस-संवेदी तुलना होती है
- संख्याओं के लिए भी काम करता है
- एकाधिक कॉलम के साथ संयोजित कर सकते हैं
उन्नत उपयोग
-- DESC के साथ उल्टा क्रम ORDER BY FIELD(status, 'pending', 'approved', 'rejected') DESC -- द्वितीयक सॉर्ट के साथ ORDER BY FIELD(priority, 'high', 'medium', 'low'), created_at DESC