FIELD() फ़ंक्शन के साथ कस्टम ऑर्डर
MySQL में FIELD(str, val1, val2, ...) फ़ंक्शन str की सूची में स्थिति लौटाता है। इसे ORDER BY के साथ उपयोग करके IN क्लॉज के मानों के क्रम में सॉर्ट कर सकते हैं।
सिंटैक्स
SELECT * FROM yourTableName WHERE yourColumnName IN (val1, val2, val3, ...) ORDER BY FIELD(yourColumnName, val1, val2, val3, ...);
उदाहरण
mysql> CREATE TABLE SelectInDemo (StudentId INT, StudentName VARCHAR(100), StudentAge INT);
mysql> INSERT INTO SelectInDemo VALUES
-> (1,'Mike',23), (10,'Bob',21), (11,'Carol',30), (15,'Sam',24),
-> (20,'John',26), (101,'David',27), (96,'Justin',23);
कस्टम ऑर्डर 1, 96, 101, 10, 15, 11, 20:
mysql> SELECT * FROM SelectInDemo
-> WHERE StudentId IN (1,96,101,10,15,11,20)
-> ORDER BY FIELD(StudentId, 1,96,101,10,15,11,20);
+-----------+-------------+------------+ | StudentId | StudentName | StudentAge | +-----------+-------------+------------+ | 1 | Mike | 23 | | 96 | Justin | 23 | | 101 | David | 27 | | 10 | Bob | 21 | | 15 | Sam | 24 | | 11 | Carol | 30 | | 20 | John | 26 | +-----------+-------------+------------+
नोट: FIELD() में सूचीबद्ध मान जो IN क्लॉज में नहीं हैं, उन्हें 0 माना जाता है और वे अंत में आते हैं (यदि वे WHERE से मेल खाते हैं)।