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

MySQL में टाइमस्टैम्प को अवरोही क्रम में क्रमबद्ध करना लेकिन 0000-00-00 00:00:00 को पहले रखना

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 - बाकी को अवरोही क्रम में क्रमबद्ध करता है

सामान्य पैटर्न


            
  1. - MySQL में ORDER BY CASE के साथ विशिष्ट रिकॉर्ड को शीर्ष पर रखना

    MySQL में ORDER BY CASE के साथ विशिष्ट मान वाली पंक्तियों को शीर्ष पर प्राथमिकता देना ORDER BY CASE एक्सप्रेशन का उपयोग करके कस्टम प्राथमिकता क्रम परिभाषित किया जा सकता है, जैसे John नाम वाली पंक्तियों को सबसे ऊपर रखना। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTable ( StudentName VARCH

  1. - MySQL में SUBSTRING_INDEX और CAST के साथ संख्या सेट के पहले नंबर द्वारा क्रमबद्ध करना

    MySQL में SUBSTRING_INDEX() के साथ अल्पविराम से अलग संख्याओं के पहले नंबर द्वारा क्रमबद्ध करना जब कॉलम में 245,654,76,89,98 जैसे अल्पविराम से अलग संख्याएं हों, तो SUBSTRING_INDEX() से पहला नंबर निकालकर संख्यात्मक क्रमबद्ध किया जा सकता है। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTable (

  1. - MySQL में मॉड्यूलस परिणाम के आधार पर ORDER BY करें

    मॉड्यूलो ऑपरेटर के साथ कस्टम सॉर्टिंग संख्यात्मक कॉलम के मॉड्यूलस (शेष) परिणाम के आधार पर पंक्तियों को क्रमबद्ध करने के लिए ORDER BY column % divisor का उपयोग करें। टेबल और डेटा CREATE TABLE DemoTable ( StudentId INT, StudentName VARCHAR(100) ); Query OK, 0 rows affected (1.88 sec) INSER