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

MySQL में CASE स्टेटमेंट का उपयोग करके ORDER BY FIELD करना

MySQL में CASE स्टेटमेंट का उपयोग करके कस्टम क्रम में ORDER BY करना

जब आपको किसी कॉलम को अपनी कस्टम प्राथमिकता के अनुसार क्रमबद्ध करना हो, तो CASE स्टेटमेंट का उपयोग करके ORDER BY क्लॉज में कस्टम सॉर्टिंग लागू कर सकते हैं।

उदाहरण के साथ पूर्ण कार्यान्वयन

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable (StudentId VARCHAR(100));

रिकॉर्ड डालना

mysql> INSERT INTO DemoTable VALUES('STU-980'), ('STU-1029'), ('STU-189'), ('STU-890');

सभी रिकॉर्ड प्रदर्शित करना (डिफ़ॉल्ट क्रम)

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-----------+
| StudentId |
+-----------+
| STU-980   |
| STU-1029  |
| STU-189   |
| STU-890   |
+-----------+
4 rows in set (0.00 sec)

CASE स्टेटमेंट के साथ कस्टम ORDER BY

mysql> SELECT * FROM DemoTable
ORDER BY CASE
    WHEN StudentId = 'STU-890' THEN 1
    WHEN StudentId = 'STU-1029' THEN 2
    WHEN StudentId = 'STU-980' THEN 3
    WHEN StudentId = 'STU-189' THEN 4
END;

आउटपुट:

+-----------+
| StudentId |
+-----------+
| STU-890   |
| STU-1029  |
| STU-980   |
| STU-189   |
+-----------+
4 rows in set (0.08 sec)

व्याख्या:

  • प्रत्येक WHEN क्लॉज एक विशिष्ट मान की जांच करता है
  • THEN के बाद का नंबर सॉर्ट प्राथमिकता निर्धारित करता है (कम नंबर = उच्च प्राथमिकता)
  • परिणाम निर्दिष्ट क्रम में आते हैं: STU-890 → STU-1029 → STU-980 → STU-189

विकल्प: FIELD() फ़ंक्शन

MySQL का FIELD() फ़ंक्शन इसे सरल बनाता है:

mysql> SELECT * FROM DemoTable
ORDER BY FIELD(StudentId, 'STU-890', 'STU-1029', 'STU-980', 'STU-189');

यह समान परिणाम देता है लेकिन अधिक पठनीय और संक्षिप्त है।

  1. PostgreSQL में MySQL के ORDER BY FIELD() का अनुकरण कैसे करें? PostgreSQL में MySQL के ORDER BY FIELD() का अनुकरण कैसे करें?

    MySQL का ORDER BY FIELD(col, val1, val2, ...) कस्टम क्रम में सॉर्ट करता है। PostgreSQL में CASE एक्सप्रेशन या ARRAY पोजीशन से समान परिणाम प्राप्त कर सकते हैं। उदाहरण डेटा CREATE TABLE country_demo (country_name VARCHAR(10)); INSERT INTO country_demo VALUES (IND), (US), (UK), (IND), (US); विधि 1: C

  1. - MySQL में CASE WHEN से खाली मान के लिए कस्टम नाम प्रदर्शित करें

    MySQL में CASE WHEN स्टेटमेंट का उपयोग करके खाली स्ट्रिंग या NULL मान के लिए कस्टम डिफ़ॉल्ट नाम प्रदर्शित कर सकते हैं। उदाहरण: खाली नाम के लिए Carol Taylor दिखाएं 1. टेबल बनाएं CREATE TABLE DemoTable (Name VARCHAR(20)); 2. डेटा डालें (खाली स्ट्रिंग सहित) INSERT INTO DemoTable VALUES(); --

  1. - MySQL में ENUM फील्ड का उपयोग करके पंक्तियों का चयन कैसे करें?

    MySQL में ENUM डेटा प्रकार पूर्वनिर्धारित मानों तक सीमित करता है। ENUM कॉलम पर क्वेरी करते समय NULL मानों और तुलना व्यवहार को समझना महत्वपूर्ण है। ENUM तालिका बनाएं mysql> CREATE TABLE DemoTable ( -> EmployeeStatus ENUM(FULLTIME, Intern) DEFAULT NULL -> ); डेटा डालें mysql> INS