ORDER BY FIELD() के साथ जटिल स्ट्रिंग का कस्टम सॉर्टिंग
जब मानों में अक्षर, संख्या, और प्रतीक हों और आपको एक विशिष्ट क्रम चाहिए, तो ORDER BY FIELD(column, 'value1', 'value2', ...) का उपयोग करें।
टेबल और डेटा
mysql> CREATE TABLE DemoTable (
Title VARCHAR(100)
);
Query OK, 0 rows affected (0.62 sec)
mysql> INSERT INTO DemoTable VALUES('Java_1+');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES('MySQL_23+');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES('MongoDB++');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable VALUES('C++_23');
Query OK, 1 row affected (0.13 sec)
सभी रिकॉर्ड
mysql> SELECT * FROM DemoTable;
+-----------+ | Title | +-----------+ | Java_1+ | | MySQL_23+ | | MongoDB++ | | C++_23 | +-----------+ 4 rows in set (0.00 sec)
कस्टम क्रम में सॉर्ट करने की क्वेरी
mysql> SELECT * FROM DemoTable
ORDER BY FIELD(Title, 'MySQL_23+', 'C++_23', 'Java_1+', 'MongoDB++');
परिणाम:
+-----------+ | Title | +-----------+ | MySQL_23+ | | C++_23 | | Java_1+ | | MongoDB++ | +-----------+ 4 rows in set (0.00 sec)
व्याख्या: FIELD() प्रत्येक मान की निर्दिष्ट सूची में स्थिति लौटाता है। सूची में नहीं होने वाले मानों के लिए 0 लौटाता है (वे पहले आते हैं)। यह किसी भी डेटा प्रकार के लिए काम करता है।