IF() और IS NULL से NULL मान जांचें
कॉलम में NULL मान की जांच करके कस्टम संदेश या डिफ़ॉल्ट मान दिखाने के लिए IF() फ़ंक्शन के साथ IS NULL ऑपरेटर का उपयोग करें।
टेबल और डेटा
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(200),
Age INT
);
mysql> INSERT INTO DemoTable(Name, Age) VALUES('John', 23), ('Sam', NULL), ('Mike', 23), ('David', 21), ('Carol', NULL);
मूल डेटा
mysql> SELECT * FROM DemoTable;
+----+-------+------+
| Id | Name | Age |
+----+-------+------+
| 1 | John | 23 |
| 2 | Sam | NULL |
| 3 | Mike | 23 |
| 4 | David | 21 |
| 5 | Carol | NULL |
+----+-------+------+
NULL जांच और कस्टम संदेश
mysql> SELECT IF(Age IS NULL, 'Age is missing', Age) FROM DemoTable;
+--------------------------------------+
| IF(Age IS NULL,'Age is missing',Age) |
+--------------------------------------+
| 23 |
| Age is missing |
| 23 |
| 21 |
| Age is missing |
+--------------------------------------+
IF() सिंटैक्स
IF(condition, value_if_true, value_if_false)
अन्य NULL हैंडलिंग फ़ंक्शन
| फ़ंक्शन | उद्देश्य | उदाहरण |
|---|---|---|
IFNULL(expr, val) | NULL हो तो val लौटाए | IFNULL(Age, 0) |
COALESCE(v1, v2, ...) | पहला नॉन-NULL लौटाए | COALESCE(phone, email, 'N/A') |
NULLIF(v1, v2) | समान हो तो NULL लौटाए | NULLIF(score, 0) |
IS NULL / IS NOT NULL | शर्त में जांच | WHERE Age IS NULL |
WHERE क्लॉज में उपयोग
-- NULL वाले रिकॉर्ड खोजना
SELECT * FROM DemoTable WHERE Age IS NULL;
-- NULL नहीं वाले रिकॉर्ड
SELECT * FROM DemoTable WHERE Age IS NOT NULL;
-- NULL को 0 मानकर फ़िल्टर
SELECT * FROM DemoTable WHERE IFNULL(Age, 0) > 20;
महत्वपूर्ण: = NULL काम नहीं करता
-- गलत - हमेशा UNKNOWN लौटाता है
SELECT * FROM DemoTable WHERE Age = NULL;
-- सही
SELECT * FROM DemoTable WHERE Age IS NULL;