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

MySQL में अंतिम 3 महीने पहले, फिर वर्णानुक्रम में ऑर्डर कैसे करें?


सशर्त ऑर्डरिंग: हाल की तारीखें पहले, फिर वर्णानुक्रम

आइए पहले एक टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable1526 (
    CustomerName VARCHAR(20),
    PurchaseDate DATE
); 
Query OK, 0 rows affected (0.67 sec)

रिकॉर्ड्स डालना (2019 की तारीखें)

mysql> INSERT INTO DemoTable1526 VALUES('Adam', '2019-06-01');
Query OK, 1 row affected (0.12 sec)
mysql> INSERT INTO DemoTable1526 VALUES('Sam', '2019-04-26');
Query OK, 1 row affected (0.13 sec)
mysql> INSERT INTO DemoTable1526 VALUES('Chris', '2019-05-24');
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable1526 VALUES('David', '2019-10-10');
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable1526 VALUES('Bob', '2019-12-31');
Query OK, 1 row affected (0.23 sec)

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

mysql> SELECT * FROM DemoTable1526;

आउटपुट:

+--------------+--------------+
| CustomerName | PurchaseDate |
+--------------+--------------+
| Adam         | 2019-06-01   |
| Sam          | 2019-04-26   |
| Chris        | 2019-05-24   |
| David        | 2019-10-10   |
| Bob          | 2019-12-31   |
+--------------+--------------+
5 rows in set (0.00 sec)

वर्तमान तारीख

mysql> SELECT CURDATE();
+------------+
| curdate()  |
+------------+
| 2019-10-08 |
+------------+
1 row in set (0.00 sec)

अंतिम 3 महीने पहले, फिर वर्णानुक्रम में ऑर्डर करने की क्वेरी

mysql> SELECT * FROM DemoTable1526
ORDER BY PurchaseDate > CURDATE() - INTERVAL 3 MONTH DESC, CustomerName;

आउटपुट:

+--------------+--------------+
| CustomerName | PurchaseDate |
+--------------+--------------+
| Bob          | 2019-12-31   |
| David        | 2019-10-10   |
| Adam         | 2019-06-01   |
| Chris        | 2019-05-24   |
| Sam          | 2019-04-26   |
+--------------+--------------+
5 rows in set (0.00 sec)

व्याख्या:

  • PurchaseDate > CURDATE() - INTERVAL 3 MONTH एक बूलियन अभिव्यक्ति है जो TRUE (1) या FALSE (0) लौटाती है।
  • DESC के साथ TRUE (हाल की तारीखें) पहले आते हैं।
  • फिर CustomerName के अनुसार वर्णानुक्रम में सॉर्ट होता है।

  1. PostgreSQL में MySQL के ORDER BY FIELD() का अनुकरण कैसे करें? PostgreSQL में MySQL के ORDER BY FIELD() का अनुकरण कैसे करें?

    MySQL का ORDER BY FIELD(col, val1, val2, ...) कस्टम क्रम में सॉर्ट करता है। PostgreSQL में CASE एक्सप्रेशन या ARRAY पोजीशन से समान परिणाम प्राप्त कर सकते हैं। उदाहरण डेटा CREATE TABLE country_demo (country_name VARCHAR(10)); INSERT INTO country_demo VALUES (IND), (US), (UK), (IND), (US); विधि 1: C

  1. - MySQL में पहली और आखिरी पंक्ति को छोड़कर सभी पंक्तियाँ कैसे प्राप्त करें?

    MySQL में किसी ग्रुप या टेबल की पहली और आखिरी पंक्ति को छोड़कर मध्य की पंक्तियाँ प्राप्त करने के लिए, MIN() और MAX() के साथ सबक्वेरी का उपयोग करें। यह टाइम-सीरीज़ डेटा या क्रमबद्ध रिकॉर्ड्स के लिए उपयोगी है। उदाहरण: पहली और आखिरी StudentId को छोड़कर डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTab

  1. - MySQL में विशिष्ट मान को पहले दिखाकर बाकी तारीख के अनुसार क्रमबद्ध करें

    MySQL में किसी विशिष्ट मान वाली पंक्ति को परिणाम सेट में सबसे पहले दिखाने और शेष पंक्तियों को किसी अन्य कॉलम (जैसे तारीख) के अनुसार क्रमबद्ध करने के लिए, ORDER BY में बूलियन एक्सप्रेशन का उपयोग करें। उदाहरण: David को पहले दिखाएं, बाकी ShippingDate द्वारा क्रमबद्ध डेमो टेबल बनाएं: mysql> CREATE