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

MySQL में ORDER BY FIELD और ID से कस्टम सॉर्ट और द्वितीयक सॉर्ट

MySQL में ORDER BY FIELD() का उपयोग करके एक कॉलम को कस्टम क्रम में सॉर्ट करें, फिर दूसरे कॉलम से द्वितीयक सॉर्ट लागू करें।

सिंटैक्स

SELECT * FROM टेबल_नाम
ORDER BY FIELD(कॉलम1, 'मान1', 'मान2', ...) DESC/ASC,
         कॉलम2 DESC/ASC;

उदाहरण: 'Mike' को पहले रखें, फिर ID अवरोही क्रम में

1. टेबल बनाएं

mysql> CREATE TABLE DemoTable (
    -> Id INT,
    -> Name VARCHAR(20)
    -> );

2. डेटा डालें

mysql> INSERT INTO DemoTable VALUES(101, 'Chris');
mysql> INSERT INTO DemoTable VALUES(201, 'Mike');
mysql> INSERT INTO DemoTable VALUES(110, 'Adam');
mysql> INSERT INTO DemoTable VALUES(250, 'John');

3. क्वेरी: Mike पहले, फिर ID DESC

mysql> SELECT * FROM DemoTable
    -> ORDER BY FIELD(Name, 'Mike') DESC, Id DESC;

4. परिणाम

+------+-------+
| Id   | Name  |
+------+-------+
| 201  | Mike  |
| 250  | John  |
| 110  | Adam  |
| 101  | Chris |
+------+-------+

व्याख्या

  • FIELD(Name, 'Mike') - 'Mike' के लिए 1, अन्य के लिए 0 देता है
  • DESC - 1 को पहले रखता है (Mike शीर्ष पर)
  • Id DESC - शेष को ID अवरोही क्रम में सॉर्ट करता है

उन्नत पैटर्न

-- एकाधिक प्राथमिकता स्तर
ORDER BY FIELD(priority, 'critical', 'high', 'medium', 'low') DESC,
         created_at ASC

-- CASE के साथ अधिक लचीलापन
ORDER BY CASE 
    WHEN status = 'urgent' THEN 1
    WHEN status = 'pending' THEN 2
    ELSE 3
END, due_date ASC

प्रदर्शन नोट

FIELD() इंडेक्स का उपयोग नहीं कर सकता। बड़े डेटासेट के लिए, एक सॉर्ट_ऑर्डर कॉलम जोड़ें और उस पर इंडेक्स बनाएं।

  1. - MySQL में ORDER BY FIELD को GROUP BY के साथ एकल क्वेरी में कैसे उपयोग करें

    इसके लिए, आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable ( Message text ); Query OK, 0 rows affected (1.15 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(Good); Query OK, 1 row affected (0.43 sec) mysql> insert into Demo

  1. - MySQL में COUNT() और IF() का एक साथ उपयोग करना

    MySQL में COUNT() और IF() को मिलाकर सशर्त गणना करना MySQL में आप COUNT() और IF() को मिलाकर विशिष्ट शर्तों को पूरा करने वाली पंक्तियों की गणना कर सकते हैं। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTable ( isValidUser BOOLEAN ); रिकॉर्ड डालना (1 = true, 0 = false) INSERT INTO DemoTable

  1. - MySQL में एक फ़ील्ड द्वारा ऑर्डर करें और बाकी रिकॉर्ड्स को उसी क्रम में प्रदर्शित करें

    MySQL में विशिष्ट रिकॉर्ड को प्राथमिकता देकर ऑर्डर करना कभी-कभी आप एक विशिष्ट रिकॉर्ड को शीर्ष पर रखना चाहते हैं जबकि बाकी रिकॉर्ड्स अपने मूल क्रम में रहें। MySQL में बूलियन अभिव्यक्ति (Id = 101) का उपयोग करके ORDER BY में यह प्राप्त किया जा सकता है। टेबल बनाना ); Query OK, 0 rows affected (0.82 s