COALESCE() फ़ंक्शन का उपयोग करके NULL मानों को क्वेरी परिणाम में डिफ़ॉल्ट मान से बदल सकते हैं। यह टेबल डेटा नहीं बदलता, केवल आउटपुट प्रभावित करता है।
टेबल बनाएं
mysql> CREATE TABLE DemoTable1863 (FirstName VARCHAR(20));
डेटा डालें
mysql> INSERT INTO DemoTable1863 VALUES('Chris');
mysql> INSERT INTO DemoTable1863 VALUES(NULL);
mysql> INSERT INTO DemoTable1863 VALUES('David');
mysql> INSERT INTO DemoTable1863 VALUES(NULL);
डिफ़ॉल्ट मान के साथ चुनें
mysql> SELECT COALESCE(FirstName, 'UNKNOWN NAME') FROM DemoTable1863;
आउटपुट:
+------------------------------------+ | COALESCE(FirstName, 'UNKNOWN NAME') | +------------------------------------+ | Chris | | UNKNOWN NAME | | David | | UNKNOWN NAME | +------------------------------------+
COALESCE vs IFNULL
COALESCE(val, 'default')- ANSI मानक, एकाधिक फॉलबैक सपोर्ट।IFNULL(val, 'default')- MySQL-विशिष्ट, केवल 2 आर्गुमेंट।
टेबल परिभाषा में डिफ़ॉल्ट मान (स्थायी)
यदि कॉलम में हमेशा डिफ़ॉल्ट चाहिए, तो टेबल बनाते समय सेट करें:
CREATE TABLE DemoTable (
FirstName VARCHAR(20) DEFAULT 'UNKNOWN NAME'
);
लेकिन यह NULL डालने पर लागू नहीं होता; केवल INSERT में कॉलम छोड़ने पर।
NULL डालने पर डिफ़ॉल्ट लागू करने के लिए
- ट्रिगर उपयोग करें:
BEFORE INSERT ... SET NEW.FirstName = COALESCE(NEW.FirstName, 'DEFAULT') - या एप्लिकेशन लेयर पर मान्यता।