MySQL में SUBSTRING_INDEX() के साथ अल्पविराम से अलग संख्याओं के पहले नंबर द्वारा क्रमबद्ध करना
जब कॉलम में "245,654,76,89,98" जैसे अल्पविराम से अलग संख्याएं हों, तो SUBSTRING_INDEX() से पहला नंबर निकालकर संख्यात्मक क्रमबद्ध किया जा सकता है।
व्यावहारिक उदाहरण
तालिका बनाना
mysql> CREATE TABLE DemoTable (
SetOfNumbers TEXT
);
संख्या सेट डालना
mysql> INSERT INTO DemoTable VALUES('245,654,76,89,98');
mysql> INSERT INTO DemoTable VALUES('2000,567,9090,6789');
mysql> INSERT INTO DemoTable VALUES('1001,90595,657,99');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+--------------------+ | SetOfNumbers | +--------------------+ | 245,654,76,89,98 | | 2000,567,9090,6789 | | 1001,90595,657,99 | +--------------------+
पहले नंबर के अनुसार क्रमबद्ध करने के लिए क्वेरी
mysql> SELECT * FROM DemoTable ORDER BY CAST(SUBSTRING_INDEX(SetOfNumbers, ',', 1) AS UNSIGNED);
आउटपुट:
+--------------------+ | SetOfNumbers | +--------------------+ | 245,654,76,89,98 | | 1001,90595,657,99 | | 2000,567,9090,6789 | +--------------------+
चरण-दर-चरण
SUBSTRING_INDEX(SetOfNumbers, ',', 1)- पहले अल्पविराम से पहले का भाग: '245', '2000', '1001'CAST(... AS UNSIGNED)- स्ट्रिंग को अनसाइन्ड इंटीजर में परिवर्तितORDER BY- संख्यात्मक मान के अनुसार क्रमबद्ध
स्ट्रिंग क्रमबद्ध vs संख्यात्मक क्रमबद्ध