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

MySQL में ORDER BY CASE के साथ वर्तमान दिन और महीने के अनुसार तिथि क्रमबद्ध करना

MySQL में CASE एक्सप्रेशन के साथ वर्तमान तिथि से भविष्य की तिथियों को पहले क्रमबद्ध करना

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

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

तालिका बनाना

mysql> CREATE TABLE DemoTable (
    DueDate DATE
);

नोट: मान लें वर्तमान तिथि 2019-07-22 है।

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

mysql> INSERT INTO DemoTable VALUES('2019-03-10');
mysql> INSERT INTO DemoTable VALUES('2019-08-25');
mysql> INSERT INTO DemoTable VALUES('2019-06-01');
mysql> INSERT INTO DemoTable VALUES('2019-12-31');

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

mysql> SELECT * FROM DemoTable;

आउटपुट:

+------------+
| DueDate    |
+------------+
| 2019-03-10 |
| 2019-08-25 |
| 2019-06-01 |
| 2019-12-31 |
+------------+

भविष्य की तिथियां पहले, फिर अतीत की तिथियां क्रमबद्ध करने के लिए क्वेरी

mysql> SELECT * FROM DemoTable 
ORDER BY CASE WHEN DueDate > CURDATE() THEN 0 ELSE 1 END, DueDate;

आउटपुट:

+------------+
| DueDate    |
+------------+
| 2019-08-25 |
| 2019-12-31 |
| 2019-03-10 |
| 2019-06-01 |
+------------+

व्याख्या

  • CASE WHEN DueDate > CURDATE() THEN 0 ELSE 1 END - भविष्य की तिथि = 0, अतीत/आज = 1
  • 0 पहले आता है (आरोही क्रम डिफ़ॉल्ट)
  • दूसरा क्रमबद्ध: DueDate - प्रत्येक समूह के भीतर तिथि क्रम

वेरिएंट: महीने और दिन के अनुसार (वर्ष अनदेखा करके)


            
  1. - MySQL क्वेरी में Year, Month और Day की तुलना करके मिलान करने वाले रिकॉर्ड कैसे प्रदर्शित करें

    इसके लिए आप DATE() फ़ंक्शन का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable864(DueDateTime timestamp); Query OK, 0 rows affected (0.56 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable864 values(2019-01-10 12:34:55); Q

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

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

  1. - MySQL में MONTH() और DAY() का उपयोग करके वर्तमान दिनांक के दिन और महीने के साथ तिथि रिकॉर्ड्स की तुलना करना

    MySQL में दिन और महीने के आधार पर तिथि फ़िल्टरिंग वर्ष की परवाह किए बिना विशिष्ट दिन और महीने पर पड़ने वाली तिथियों को ढूंढने के लिए (जैसे वर्षगाँठ, जन्मदिन), MONTH() और DAY() फ़ंक्शन का उपयोग करके तिथि भागों की तुलना करें। उदाहरण: आज की तिथि से मेल खाने वाली वर्षगाँठ ढूंढना पहले एक वर्षगाँठ तिथि ट