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

MySQL में ORDER BY CASE के साथ विशिष्ट रिकॉर्ड को शीर्ष पर रखना

MySQL में ORDER BY CASE के साथ विशिष्ट मान वाली पंक्तियों को शीर्ष पर प्राथमिकता देना

ORDER BY CASE एक्सप्रेशन का उपयोग करके कस्टम प्राथमिकता क्रम परिभाषित किया जा सकता है, जैसे 'John' नाम वाली पंक्तियों को सबसे ऊपर रखना।

व्यावहारिक उदाहरण

तालिका बनाना

mysql> CREATE TABLE DemoTable (
    StudentName VARCHAR(100),
    StudentMarks INT
);

रिकॉर्ड डालना (एकाधिक 'John' सहित)

mysql> INSERT INTO DemoTable VALUES('Chris', 45);
mysql> INSERT INTO DemoTable VALUES('John', 67);
mysql> INSERT INTO DemoTable VALUES('David', 89);
mysql> INSERT INTO DemoTable VALUES('John', 98);
mysql> INSERT INTO DemoTable VALUES('Mike', 79);
mysql> INSERT INTO DemoTable VALUES('John', 99);

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

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| Chris       | 45           |
| John        | 67           |
| David       | 89           |
| John        | 98           |
| Mike        | 79           |
| John        | 99           |
+-------------+--------------+

'John' को शीर्ष पर, फिर नाम और अंक अनुसार क्रमबद्ध करने के लिए क्वेरी

mysql> SELECT * FROM DemoTable 
ORDER BY CASE StudentName WHEN 'John' THEN 2 ELSE 3 END, 
         StudentName, StudentMarks;

आउटपुट:

+-------------+--------------+
| StudentName | StudentMarks |
+-------------+--------------+
| John        | 67           |
| John        | 98           |
| John        | 99           |
| Chris       | 45           |
| David       | 89           |
| Mike        | 79           |
+-------------+--------------+

व्याख्या

  • CASE WHEN 'John' THEN 2 ELSE 3 END - 'John' को प्राथमिकता 2, अन्य को 3
  • कम संख्या पहले आती है (आरोही क्रम)
  • दूसरा क्रमबद्ध: StudentName - वर्णानुक्रम
  • तीसरा क्रमबद्ध: StudentMarks - अंकों के अनुसार

सरल विकल्प: बूलियन एक्सप्रेशन

ORDER BY CASE StudentName
  WHEN 'John' THEN 1
  WHEN 'David' THEN 2
  WHEN 'Mike' THEN 3
  ELSE 4
END, StudentMarks DESC;

उपयोग के मामले: फीचर्ड आइटम, एडमिन उपयोगकर्ता, प्राथमिकता श्रेणियां, डिफ़ॉल्ट विकल्प।

  1. - MySQL में वर्तमान दिनांक से मिलान करने वाली विशिष्ट दिनांक पर रिकॉर्ड अपडेट करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1822 ( Amount int, DueDate date ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1822 values(1000,2019-10-11); Query OK, 1 row affected (0.00 sec) mysql&

  1. - MySQL में SELECT क्वेरी से विशिष्ट कॉलम रिकॉर्ड कैसे प्राप्त करें?

    MySQL में किसी टेबल से केवल विशिष्ट कॉलम के डेटा को प्राप्त करना बहुत आसान है। इसके लिए SELECT * के बजाय केवल उस कॉलम का नाम लिखें जिसे आप देखना चाहते हैं। उदाहरण के साथ समझें सबसे पहले एक डेमो टेबल बनाते हैं: mysql> CREATE TABLE DemoTable1837 ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY

  1. - MySQL में AND और OR ऑपरेटर के साथ विशिष्ट रिकॉर्ड कैसे प्राप्त करें

    उदाहरण टेबल बनाएं: ); डेटा डालें: INSERT INTO DemoTable2015 VALUES (4, Robert, US); क्वेरी StudentName=David OR (StudentCountryName=UK AND StudentId=3): WHERE StudentName = David OR StudentCountryName = UK AND StudentId = 3; परिणाम +-----------+-------------+--------------------+ | Stu