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

MySQL में ORDER BY CASE का उपयोग करके दिनांक और पूर्णांक कॉलम द्वारा कस्टम क्रम में सॉर्ट करना


MySQL में ORDER BY CASE के साथ कस्टम सॉर्टिंग

आप ORDER BY CASE स्टेटमेंट का उपयोग करके पूर्णांक कॉलम के लिए कस्टम क्रम और दिनांक कॉलम के लिए सामान्य क्रम निर्दिष्ट कर सकते हैं।

सिंटैक्स

SELECT * FROM yourTableName
ORDER BY CASE yourIntegerColumnName WHEN 2 THEN 1 ELSE 0 END DESC, yourDateColumnName ASC;

उदाहरण

टेबल बनाएं:

mysql> create table OrderByCaseDemo (
    -> Id int NOT NULL AUTO_INCREMENT,
    -> GroupId int,
    -> ArrivalDate date,
    -> PRIMARY KEY(Id)
    -> );

डेटा डालें:

mysql> insert into OrderByCaseDemo(GroupId, ArrivalDate) values(2, '2019-02-06');
mysql> insert into OrderByCaseDemo(GroupId, ArrivalDate) values(1, '2020-02-06');
mysql> insert into OrderByCaseDemo(GroupId, ArrivalDate) values(3, '2018-02-06');
mysql> insert into OrderByCaseDemo(GroupId, ArrivalDate) values(3, '2021-02-06');
mysql> insert into OrderByCaseDemo(GroupId, ArrivalDate) values(2, '2017-02-06');
mysql> insert into OrderByCaseDemo(GroupId, ArrivalDate) values(1, '2022-02-06');

कस्टम क्रम: GroupId=2 पहले, फिर बाकी, और ArrivalDate आरोही क्रम में:

mysql> select * from OrderByCaseDemo
    -> order by case GroupId when 2 then 1 else 0 end desc, ArrivalDate asc;

परिणाम:

+----+---------+-------------+
| Id | GroupId | ArrivalDate |
+----+---------+-------------+
|  5 |       2 | 2017-02-06  |
|  1 |       2 | 2019-02-06  |
|  3 |       3 | 2018-02-06  |
|  2 |       1 | 2020-02-06  |
|  4 |       3 | 2021-02-06  |
|  6 |       1 | 2022-02-06  |
+----+---------+-------------+

व्याख्या

  • CASE GroupId WHEN 2 THEN 1 ELSE 0 END: GroupId=2 के लिए 1, बाकी के लिए 0
  • DESC: 1 पहले आता है (यानी GroupId=2 पहले)
  • ArrivalDate ASC: समान GroupId के लिए दिनांक के अनुसार आरोही क्रम
  1. - MySQL में ORDER BY CASE के साथ वर्तमान दिन और महीने के अनुसार तिथि क्रमबद्ध करना

    MySQL में CASE एक्सप्रेशन के साथ वर्तमान तिथि से भविष्य की तिथियों को पहले क्रमबद्ध करना ORDER BY CASE का उपयोग करके कस्टम क्रमबद्ध तर्क लागू किया जा सकता है, जैसे वर्तमान तिथि से भविष्य की तिथियों को पहले, फिर अतीत की तिथियों को क्रमबद्ध करना। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTabl

  1. - MySQL में ALTER TABLE का उपयोग करके तारीख कॉलम को NULL अनुमति दें

    ALTER TABLE ... MODIFY COLUMN का उपयोग करके NOT NULL प्रतिबंध को हटाएं और तारीख कॉलम में NULL मानों की अनुमति दें। सिंटैक्स ALTER TABLE yourTableName MODIFY COLUMN yourColumnName DATE NULL; NOT NULL के साथ टेबल बनाना CREATE TABLE DemoTable (ShippingDate DATE NOT NULL); Query OK, 0 rows affected (

  1. - MySQL में शर्त के साथ ORDER BY और SELECT कैसे करें?

    कंडीशनल ORDER BY: जीरो वैल्यू अंत में किसी कॉलम को सॉर्ट करते समय खास मान (जैसे 0) को अंत में रखने और बाकी को नॉर्मल ऑर्डर में रखने के लिए बूलियन एक्सप्रेशन का उपयोग करें। सिंटैक्स SELECT * FROM yourTableName ORDER BY yourColumnName = 0, yourColumnName; टेबल बनाना और डेटा इन्सर्ट करना CREATE TABL