नियमित अभिव्यक्ति के साथ CASE स्टेटमेंट का उपयोग करें। आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Value VARCHAR(20)
);
टेबल में कुछ रिकॉर्ड डालें:
mysql> INSERT INTO DemoTable(Value) VALUES('101');
mysql> INSERT INTO DemoTable(Value) VALUES('P');
mysql> INSERT INTO DemoTable(Value) VALUES('A');
mysql> INSERT INTO DemoTable(Value) VALUES('53');
mysql> INSERT INTO DemoTable(Value) VALUES('R');
mysql> INSERT INTO DemoTable(Value) VALUES('C');
mysql> INSERT INTO DemoTable(Value) VALUES('190');
टेबल से सभी रिकॉर्ड प्रदर्शित करें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+----+-------+ | Id | Value | +----+-------+ | 1 | 101 | | 2 | P | | 3 | A | | 4 | 53 | | 5 | R | | 6 | C | | 7 | 190 | +----+-------+
ORDER BY CASE के साथ क्वेरी को क्रमबद्ध करने के लिए क्वेरी:
mysql> SELECT Id, Value FROM DemoTable ORDER BY CASE WHEN Value REGEXP '[a-zA-Z]' THEN 0 ELSE 0+Value END ASC, Value;
आउटपुट:
+----+-------+ | Id | Value | +----+-------+ | 3 | A | | 6 | C | | 2 | P | | 5 | R | | 4 | 53 | | 1 | 101 | | 7 | 190 | +----+-------+