MySQL में IFNULL() और DEFAULT() फ़ंक्शन का उपयोग करके आप जांच सकते हैं कि किसी कॉलम का मान स्पष्ट रूप से सेट किया गया है या यह डिफ़ॉल्ट मान ले रहा है।
उदाहरण तालिका बनाना (डिफ़ॉल्ट मान के साथ)
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(100) DEFAULT 'Larry',
Age INT DEFAULT NULL
);
डेटा डालना (कुछ में डिफ़ॉल्ट मान उपयोग करना)
mysql> INSERT INTO DemoTable (Name, Age) VALUES ('John', 23);
mysql> INSERT INTO DemoTable VALUES (); -- सभी डिफ़ॉल्ट
mysql> INSERT INTO DemoTable (Name) VALUES ('David'); -- Age डिफ़ॉल्ट NULL
mysql> INSERT INTO DemoTable (Age) VALUES (24); -- Name डिफ़ॉल्ट 'Larry'
सभी रिकॉर्ड देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | John | 23 | | 2 | Larry | NULL | | 3 | David | NULL | | 4 | Larry | 24 | +----+-------+------+
डिफ़ॉल्ट मान से भिन्न मान वाले रिकॉर्ड ढूंढना
mysql> SELECT * FROM DemoTable
-> WHERE IFNULL(Name, DEFAULT(Name)) <> DEFAULT(Name);
आउटपुट:
+----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | John | 23 | | 3 | David | NULL | +----+-------+------+
व्याख्या: DEFAULT(col) कॉलम के डिफ़ॉल्ट मान को लौटाता है। IFNULL(Name, DEFAULT(Name)) सुनिश्चित करता है कि यदि Name NULL है तो डिफ़ॉल्ट मान उपयोग हो। <> DEFAULT(Name) उन पंक्तियों को चुनता है जहां वास्तविक मान (या NULL के लिए डिफ़ॉल्ट) डिफ़ॉल्ट से भिन्न है।
परिणाम: पंक्ति 1 ('John' ≠ 'Larry') और पंक्ति 3 ('David' ≠ 'Larry') चुनी गईं। पंक्ति 2 और 4 में 'Larry' है जो डिफ़ॉल्ट है, इसलिए बाहर रखी गईं।