MySQL में IN() क्लॉज़ में मानों के क्रम में ही परिणाम लौटाने के लिए ORDER BY FIELD() फ़ंक्शन का उपयोग किया जाता है। यह कस्टम सॉर्टिंग के लिए बहुत उपयोगी है।
उदाहरण के लिए टेबल बनाना
mysql> CREATE TABLE DemoTable (Number INT);
डेटा डालना
mysql> INSERT INTO DemoTable VALUES(19), (30), (34), (28), (25), (29), (24);
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+--------+ | Number | +--------+ | 19 | | 30 | | 34 | | 28 | | 25 | | 29 | | 24 | +--------+
IN() सूची के क्रम में परिणाम लौटाना
mysql> SELECT * FROM DemoTable ORDER BY FIELD(Number, 30, 19, 34, 25, 28, 29, 24);
आउटपुट
+--------+ | Number | +--------+ | 30 | | 19 | | 34 | | 25 | | 28 | | 29 | | 24 | +--------+
व्याख्या: FIELD(str, val1, val2, ...) str की सूची में स्थिति लौटाता है (1-आधारित)। सूची में न होने पर 0 लौटाता है। ORDER BY FIELD(...) ASC से सूची क्रम में परिणाम मिलते हैं, फिर सूची में न होने वाले मान (0) अंत में आते हैं।