MySQL में किसी टेक्स्ट कॉलम के मानों की लंबाई (वर्णों की संख्या) के आधार पर परिणामों को क्रमबद्ध करने के लिए ORDER BY LENGTH(column_name) का उपयोग करें।
सिंटैक्स
SELECT * FROM table_name ORDER BY LENGTH(column_name) [ASC|DESC];
व्यावहारिक उदाहरण
1. टेबल बनाएं और डेटा डालें
mysql> CREATE TABLE DemoTable715 (UserMessage VARCHAR(100));
Query OK, 0 rows affected (0.56 sec)
mysql> INSERT INTO DemoTable715 VALUES
('Aw'), ('Awe'), ('A'), ('Awes'), ('Awesom'), ('Awesome');
Query OK, 6 rows affected (0.15 sec)
2. सभी रिकॉर्ड्स (डिफ़ॉल्ट क्रम)
mysql> SELECT * FROM DemoTable715; +-------------+ | UserMessage | +-------------+ | Aw | | Awe | | A | | Awes | | Awesom | | Awesome | +-------------+ 6 rows in set (0.00 sec)
3. लंबाई के आरोही क्रम में (छोटे से बड़े)
mysql> SELECT * FROM DemoTable715 ORDER BY LENGTH(UserMessage); +-------------+ | UserMessage | +-------------+ | A | | Aw | | Awe | | Awes | | Awesom | | Awesome | +-------------+ 6 rows in set (0.00 sec)
4. लंबाई के अवरोही क्रम में (बड़े से छोटे)
mysql> SELECT * FROM DemoTable715 ORDER BY LENGTH(UserMessage) DESC; +-------------+ | UserMessage | +-------------+ | Awesome | | Awesom | | Awes | | Awe | | Aw | | A | +-------------+ 6 rows in set (0.00 sec)
उन्नत उपयोग
लंबाई के साथ द्वितीयक क्रमबद्धता
-- पहले लंबाई से, फिर वर्णमाला क्रम से SELECT * FROM DemoTable715 ORDER BY LENGTH(UserMessage), UserMessage;
बाइट लंबाई के लिए CHAR_LENGTH vs LENGTH
| फ़ंक्शन | विवरण |
|---|---|
LENGTH(str) | बाइट्स में लंबाई लौटाता है |
CHAR_LENGTH(str) | वर्णों में लंबाई लौटाता है |
-- मल्टी-बाइट वर्णों (UTF-8 हिंदी, चीनी, आदि) के लिए
SELECT LENGTH('नमस्ते'), CHAR_LENGTH('नमस्ते');
-- LENGTH: 15 (बाइट्स), CHAR_LENGTH: 5 (वर्ण)
WHERE क्लॉज में लंबाई फ़िल्टर
-- 5 वर्णों से लंबे संदेश SELECT * FROM DemoTable715 WHERE LENGTH(UserMessage) > 5; -- सटीक लंबाई SELECT * FROM DemoTable715 WHERE CHAR_LENGTH(UserMessage) = 3;
प्रदर्शन नोट
LENGTH() या CHAR_LENGTH() का उपयोग WHERE या ORDER BY में इंडेक्स उपयोग को रोक सकता है। बड़े टेबल्स के लिए, लंबाई को एक अलग कॉलम में स्टोर करने और उस पर इंडेक्स बनाने पर विचार करें।