MySQL में ORDER BY में बूलियन एक्सप्रेशन का उपयोग करके जीरो टाइमस्टैम्प को पहले रखना
MySQL में बूलियन एक्सप्रेशन संख्यात्मक संदर्भ में 1 (सत्य) या 0 (असत्य) होते हैं। इसका उपयोग कस्टम क्रमबद्ध करने के लिए किया जा सकता है।
व्यावहारिक उदाहरण
तालिका बनाना
mysql> CREATE TABLE DemoTable (
`timestamp` TIMESTAMP
);
रिकॉर्ड डालना (जीरो टाइमस्टैम्प सहित)
mysql> INSERT INTO DemoTable VALUES(NOW());
mysql> INSERT INTO DemoTable VALUES('00:00:00');
mysql> INSERT INTO DemoTable VALUES('2018-01-10 12:34:45');
mysql> INSERT INTO DemoTable VALUES('2019-12-31 10:50:45');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+---------------------+ | timestamp | +---------------------+ | 2019-08-17 06:17:12 | | 0000-00-00 00:00:00 | | 2018-01-10 12:34:45 | | 2019-12-31 10:50:45 | +---------------------+
जीरो टाइमस्टैम्प को पहले, फिर अवरोही क्रम के लिए क्वेरी
mysql> SELECT * FROM DemoTable ORDER BY (`timestamp` = 0) DESC, `timestamp` DESC;
आउटपुट:
+---------------------+ | timestamp | +---------------------+ | 0000-00-00 00:00:00 | | 2019-12-31 10:50:45 | | 2019-08-17 06:17:12 | | 2018-01-10 12:34:45 | +---------------------+
व्याख्या
(`timestamp` = 0)- जीरो टाइमस्टैम्प के लिए 1 (सत्य), अन्य के लिए 0 (असत्य)DESC- 1 को पहले रखता है (जीरो टाइमस्टैम्प पहले)`timestamp` DESC- बाकी को अवरोही क्रम में क्रमबद्ध करता है
सामान्य पैटर्न