MySQL में तिथि कॉलम्स में NULL मान होने पर क्रमबद्ध (ORDER BY) करते समय IFNULL() या COALESCE() का उपयोग करके एक वैकल्पिक तिथि प्रदान की जा सकती है।
उदाहरण के लिए टेबल बनाना
mysql> CREATE TABLE DemoTable (
added_date DATE,
updated_date DATE
);
डेटा डालना (NULL मानों सहित)
mysql> INSERT INTO DemoTable VALUES('2019-01-10', '2019-06-01'), ('2019-05-19', NULL), (NULL, '2019-09-05');
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट
+------------+--------------+ | added_date | updated_date | +------------+--------------+ | 2019-01-10 | 2019-06-01 | | 2019-05-19 | NULL | | NULL | 2019-09-05 | +------------+--------------+
केस 1: अवरोही क्रम (updated_date प्राथमिक, added_date फॉलबैक)
mysql> SELECT * FROM DemoTable ORDER BY IFNULL(updated_date, added_date) DESC;
आउटपुट
+------------+--------------+ | added_date | updated_date | +------------+--------------+ | NULL | 2019-09-05 | | 2019-01-10 | 2019-06-01 | | 2019-05-19 | NULL | +------------+--------------+
केस 2: आरोही क्रम
mysql> SELECT * FROM DemoTable ORDER BY IFNULL(updated_date, added_date);
आउटपुट
+------------+--------------+ | added_date | updated_date | +------------+--------------+ | 2019-05-19 | NULL | | 2019-01-10 | 2019-06-01 | | NULL | 2019-09-05 | +------------+--------------+
नोट: IFNULL(updated_date, added_date) का अर्थ: यदि updated_date NULL नहीं है तो उसका उपयोग करें, अन्यथा added_date उपयोग करें। COALESCE(updated_date, added_date, '1970-01-01') से डिफ़ॉल्ट फॉलबैक भी जोड़ सकते हैं।