सशर्त ऑर्डरिंग: हाल की तारीखें पहले, फिर वर्णानुक्रम
आइए पहले एक टेबल बनाते हैं:
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के अनुसार वर्णानुक्रम में सॉर्ट होता है।