FIELD() फ़ंक्शन के साथ कस्टम स्ट्रिंग ऑर्डर
FIELD(str, val1, val2, ...) फ़ंक्शन str की स्थिति लौटाता है। इसे ORDER BY में उपयोग करके मनचाहे क्रम में सॉर्ट करें।
सिंटैक्स
SELECT * FROM yourTableName ORDER BY FIELD(yourColumnName, 'value1', 'value2', 'value3', ...);
उदाहरण
mysql> CREATE TABLE OrderByListOfStrings (Id INT AUTO_INCREMENT PRIMARY KEY, CarName VARCHAR(20));
mysql> INSERT INTO OrderByListOfStrings (CarName) VALUES
-> ('Ford'), ('Audi'), ('Honda'), ('Aston Martin'), ('Bugatti'), ('BMW');
कस्टम ऑर्डर: Bugatti, BMW, Audi, Aston Martin, Ford, Honda
mysql> SELECT * FROM OrderByListOfStrings
-> ORDER BY FIELD(CarName, 'Bugatti','BMW','Audi','Aston Martin','Ford','Honda');
+----+--------------+ | Id | CarName | +----+--------------+ | 5 | Bugatti | | 6 | BMW | | 2 | Audi | | 4 | Aston Martin | | 1 | Ford | | 3 | Honda | +----+--------------+
नोट: सूची में नहीं होने वाले मान 0 प्राप्त करते हैं और पहले आते हैं (यदि ASC)। उन्हें अंत में रखने के लिए सूची में जोड़ें या CASE WHEN उपयोग करें।