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

MySQL में ORDER BY बहु-कॉलम का उपयोग करके दो कॉलम की तुलना करके सर्वोच्च प्राथमिकता वाली पंक्ति प्राप्त करना

MySQL में ORDER BY में एकाधिक कॉलम निर्दिष्ट करके दो कॉलम की प्राथमिकता के आधार पर शीर्ष पंक्ति प्राप्त करें।

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> Num1 INT,
    -> Num2 INT
    -> );
Query OK, 0 rows affected (0.61 sec)
mysql> INSERT INTO DemoTable VALUES(60, 249), (59, 250);

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट

+------+------+
| Num1 | Num2 |
+------+------+
| 60   | 249  |
| 59   | 250  |
+------+------+
2 rows in set (0.00 sec)

Num2 अवरोही, फिर Num1 अवरोही क्रम में शीर्ष 1 पंक्ति

mysql> SELECT * FROM DemoTable ORDER BY Num2 DESC, Num1 DESC LIMIT 1;

आउटपुट

+------+------+
| Num1 | Num2 |
+------+------+
| 59   | 250  |
+------+------+
1 row in set (0.00 sec)

व्याख्या:

  1. पहले Num2 DESC द्वारा क्रमबद्ध: 250 (पंक्ति 2) पहले, 249 (पंक्ति 1) बाद में
  2. टाई होने पर Num1 DESC द्वारा क्रमबद्ध
  3. LIMIT 1 - केवल पहली पंक्ति

परिणाम: पंक्ति 2 (Num2=250) चुनी गई क्योंकि इसका Num2 अधिक है, भले ही इसका Num1 (59) पंक्ति 1 के Num1 (60) से कम है।

सामान्य पैटर्न - प्राथमिकता क्रम:

ORDER BY Priority1 DESC, Priority2 DESC, Priority3 ASC, ... LIMIT 1

यह "सबसे अच्छा" रिकॉर्ड चुनने का सामान्य पैटर्न है जहां कई मानदंड हैं (जैसे: उच्चतम स्कोर, फिर न्यूनतम समय, फिर सबसे पुराना ID)।

नोट: मूल सामग्री में क्वेरी दो बार दोहराई गई थी; यहां एक बार दी गई है।

  1. - MySQL में दो कॉलम जोड़ें जब उनमें से एक का मान NULL हो

    क्वेरी चलाते समय किसी भी समस्या से बचने के लिए IFNULL() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1793 ( StudentFirstName varchar(20), StudentLastName varchar(20) ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें:

  1. - MySQL में एक क्वेरी से दो कॉलम कैसे अपडेट करें?

    MySQL में एक ही UPDATE स्टेटमेंट में एकाधिक कॉलम अपडेट करने के लिए, SET क्लॉज़ में कॉलम को कॉमा से अलग करके सूचीबद्ध करें। यह एटॉमिक ऑपरेशन सुनिश्चित करता है और क्वेरी ओवरहेड कम करता है। उदाहरण: FirstName और LastName एक साथ अपडेट करना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1909 ( Id

  1. - MySQL में विशिष्ट पंक्ति प्राप्त करना

    WHERE, ORDER BY और LIMIT से विशिष्ट पंक्ति चुनें टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1972 ( Section char(1), StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec) mysql> insert into DemoTable1972 values(D,Chris); ... क्वेरी: C से बड़े सेक्शन को क्रमबद्ध करके पहले 2