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

MySQL में RIGHT() फ़ंक्शन से अंतिम 2 कैरेक्टर द्वारा ORDER BY कैसे करें?

स्ट्रिंग के अंतिम N कैरेक्टर के आधार पर सॉर्ट करना

MySQL में RIGHT(str, len) फ़ंक्शन स्ट्रिंग के दाएं से len कैरेक्टर निकालता है। इसका उपयोग ORDER BY में करके अंतिम कैरेक्टर्स द्वारा सॉर्ट कर सकते हैं।

सिंटैक्स

SELECT yourColumnName FROM yourTableName ORDER BY RIGHT(yourColumnName, 2);

उदाहरण: CustomerId जैसे 'John-98', 'Carol-91'

CREATE TABLE OrderByLast2CharactersDemo (
    CustomerId VARCHAR(20),
    CustomerName VARCHAR(20)
);

INSERT INTO OrderByLast2CharactersDemo VALUES
('John-98', 'John'), ('Carol-91', 'Carol'), ('Bob-99', 'Bob'), ('David-67', 'David');

केस 1: आरोही क्रम (ASC - डिफ़ॉल्ट)

SELECT CustomerId FROM OrderByLast2CharactersDemo ORDER BY RIGHT(CustomerId, 2);
+------------+
| CustomerId |
+------------+
| David-67   |
| Carol-91   |
| John-98    |
| Bob-99     |
+------------+

केस 2: अवरोही क्रम (DESC)

SELECT CustomerId FROM OrderByLast2CharactersDemo ORDER BY RIGHT(CustomerId, 2) DESC;
+------------+
| CustomerId |
+------------+
| Bob-99     |
| John-98    |
| Carol-91   |
| David-67   |
+------------+

व्यावहारिक उपयोग केस

  • फ़ाइल नाम: report_2023.pdf, report_2024.pdf → वर्ष द्वारा सॉर्ट।
  • उत्पाद कोड: PRD-A1, PRD-B2 → अंतिम अंक द्वारा।
  • फोन नंबर: अंतिम 4 अंकों द्वारा ग्रुपिंग।

प्रदर्शन नोट

RIGHT() फ़ंक्शन इंडेक्स उपयोग को रोकता है (सार्गेबल नहीं)। बड़े टेबल पर:

  • एक जनरेटेड कॉलम (MySQL 5.7+) बनाएं: last2 CHAR(2) GENERATED ALWAYS AS (RIGHT(CustomerId, 2)) STORED और उस पर इंडेक्स बनाएं।
  • या एप्लिकेशन लेयर पर सॉर्ट करें।
  1. - MySQL में ORDER BY CASE और IN() का उपयोग करके ग्रुप्ड फील्ड्स को कैसे ऑर्डर करें

    CASE WHEN ... IN() के साथ कस्टम ऑर्डरिंग ग्रुप्ड फील्ड्स को कस्टम ऑर्डर में सॉर्ट करने के लिए ORDER BY CASE के साथ IN() का उपयोग करें। CASE विभिन्न शर्तों का मूल्यांकन करता है जबकि ORDER BY मानों को आरोही/अवरोही क्रम में सॉर्ट करता है। आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable (

  1. - MySQL क्वेरी: निश्चित अंतिम स्ट्रिंग वर्ण के आधार पर क्रमबद्ध करें

    परिचय जब कॉलम मानों में हाइफ़न (-) से अलग सफ़िक्स हों (जैसे John-D, John-Smith), और आप उन सफ़िक्स के आधार पर क्रमबद्ध करना चाहते हैं, तो MySQL के स्ट्रिंग फंक्शन्स और CASE स्टेटमेंट का उपयोग किया जा सकता है। उदाहरण: टेबल बनाना और डेटा डालना ); Query OK, 0 rows affected (0.54 sec) INSERT INTO Dem

  1. - MySQL में REPLACE() फंक्शन का उपयोग करके वर्ण कैसे बदलें?

    MySQL में REPLACE() फ़ंक्शन का उपयोग करके किसी स्ट्रिंग में सभी घटनाओं को दूसरे स्ट्रिंग से बदला जा सकता है। यह टाइपो सुधार, डेटा सफाई के लिए उपयोगी है। सिंटैक्स REPLACE(column_name, old_string, new_string) उदाहरण तालिका बनाएं और डेटा डालें (टाइपो के साथ): mysql> CREATE TABLE DemoTable (Name VA