IFNULL() के साथ NULL मान वाली पंक्तियों को फ़िल्टर करना
दो कॉलम की तुलना में, जब एक कॉलम NULL हो तो उसे 0 मानकर तुलना करने के लिए IFNULL() का उपयोग करें, जिससे NULL वाली पंक्तियां परिणाम में आ सकें।
टेबल और डेटा
mysql> CREATE TABLE DemoTable (
Value1 INT,
Value2 INT
);
Query OK, 0 rows affected (0.75 sec)
mysql> INSERT INTO DemoTable VALUES(10,NULL); Query OK, 1 row affected (0.10 sec) mysql> INSERT INTO DemoTable VALUES(20,40); Query OK, 1 row affected (0.27 sec) mysql> INSERT INTO DemoTable VALUES(3,NULL); Query OK, 1 row affected (0.20 sec)
सभी रिकॉर्ड
mysql> SELECT * FROM DemoTable;
+--------+--------+ | Value1 | Value2 | +--------+--------+ | 10 | NULL | | 20 | 40 | | 3 | NULL | +--------+--------+ 3 rows in set (0.00 sec)
Value1 > Value2 (NULL को 0 मानकर) वाली पंक्तियां
mysql> SELECT * FROM DemoTable WHERE Value1 > IFNULL(Value2, 0);
परिणाम:
+--------+--------+ | Value1 | Value2 | +--------+--------+ | 10 | NULL | | 3 | NULL | +--------+--------+ 2 rows in set (0.00 sec)
तर्क: पंक्ति 1: Value2 NULL → IFNULL 0 → 10 > 0 सत्य। पंक्ति 2: 20 > 40 असत्य। पंक्ति 3: Value2 NULL → 0 → 3 > 0 सत्य।
सीधा तरीका: केवल NULL वाली पंक्तियों के लिए WHERE Value2 IS NULL अधिक स्पष्ट और कुशल है। उपरोक्त तरीका तुलना संदर्भ में उपयोगी है।