Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में कॉलम की लंबाई के अनुसार ORDER BY LENGTH() का उपयोग करके क्रमबद्ध करना

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 में इंडेक्स उपयोग को रोक सकता है। बड़े टेबल्स के लिए, लंबाई को एक अलग कॉलम में स्टोर करने और उस पर इंडेक्स बनाने पर विचार करें।

  1. - MySQL ORDER BY CASE के साथ

    इसके लिए ORDER BY NULLIF() का उपयोग करें। पहले एक टेबल बनाते हैं: mysql> create table DemoTable672( CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, CustomerName varchar(100), CustomerAmount int ); Query OK, 0 rows affected (0.81 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mys

  1. - MySQL में ORDER BY INSTR() से विशिष्ट शब्द क्रमबद्ध करना

    INSTR() फंक्शन के साथ कस्टम ऑर्डरिंग INSTR(str, substr) फंक्शन str में substr की पहली घटना की स्थिति (1-आधारित) लौटाता है। मिलने पर स्थिति, न मिलने पर 0। ORDER BY INSTR(...) से शब्द की स्थिति के अनुसार क्रमबद्ध करें। उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना mysql> CREATE TABLE DemoTable822(Word T

  1. - MySQL में IP एड्रेस रिकॉर्ड्स के अनुसार कॉलम को ऑर्डर करें

    MySQL में IP एड्रेस को सही क्रम में सॉर्ट करने के लिए, INET_ATON() फंक्शन का उपयोग करें। यह फंक्शन IP एड्रेस को संख्यात्मक मान में बदल देता है, जिससे सही संख्यात्मक क्रम में सॉर्टिंग संभव होती है। टेबल बनाएं: mysql> create table DemoTable ( -> IpAddress VARCHAR(50) -> ); Query