MySQL में किसी कॉलम के NULL मानों के आधार पर कस्टम टेक्स्ट प्रदर्शित करने के लिए IF() फंक्शन (या CASE) का उपयोग करें। यह रिपोर्टिंग, UI डिस्प्ले, और डेटा एक्सपोर्ट में "Not Found" जैसे संदेश दिखाने के लिए उपयोगी है।
उदाहरण: StudentName NULL होने पर कस्टम संदेश
डेमो टेबल बनाएं:
mysql> CREATE TABLE DemoTable1953 (StudentName VARCHAR(20));
डेटा इन्सर्ट करें:
mysql> INSERT INTO DemoTable1953 VALUES
('Chris'), (NULL), ('David'), (NULL);
IF() के साथ क्वेरी:
mysql> SELECT StudentName,
IF(StudentName IS NULL, 'Student Name Is Not Found', 'Student Name Found') AS Name
FROM DemoTable1953;
आउटपुट:
+-------------+---------------------------+ | StudentName | Name | +-------------+---------------------------+ | Chris | Student Name Found | | NULL | Student Name Is Not Found | | David | Student Name Found | | NULL | Student Name Is Not Found | +-------------+---------------------------+
IF() सिंटैक्स
IF(condition, value_if_true, value_if_false)
condition: कोई भी बूलियन एक्सप्रेशनvalue_if_true: शर्त सत्य होने पर मानvalue_if_false: शर्त असत्य होने पर मान
IF vs CASE vs COALESCE
| फंक्शन | उपयोग | शर्तें |
|---|---|---|
| IF() | सरल द्विआधारी शर्त | 1 शर्त |
| CASE | एकाधिक शर्तें | असीमित WHEN |
| COALESCE() | पहला नॉन-NULL | मान सूची |
| IFNULL() | NULL को डिफ़ॉल्ट से बदलें | 2 आर्गुमेंट |
CASE संस्करण (अधिक पठनीय जटिल लॉजिक के लिए)
SELECT StudentName,
CASE
WHEN StudentName IS NULL THEN 'Student Name Is Not Found'
WHEN StudentName = '' THEN 'Name Is Empty'
ELSE 'Student Name Found'
END AS Name
FROM DemoTable1953;
व्यावहारिक उपयोग मामले
1. डैशबोर्ड स्थिति
SELECT order_id,
IF(shipped_date IS NULL, 'Pending', 'Shipped') AS status
FROM orders;
2. संपर्क जानकारी फॉलबैक
SELECT COALESCE(phone, email, 'No contact') AS contact FROM customers;
3. गणना में NULL सुरक्षा
SELECT price * IF(discount IS NULL, 0, discount) AS discounted_price FROM products;
सावधानी: खाली स्ट्रिंग vs NULL
IF(name IS NULL, ...) -- केवल NULL पकड़ता है IF(name = '', ...) -- केवल खाली स्ट्रिंग पकड़ता है IF(name IS NULL OR name = '', ...) -- दोनों पकड़ता है IF(TRIM(name) = '', ...) -- स्पेस-ओनली भी पकड़ता है
IF() MySQL-विशिष्ट है; पोर्टेबल कोड के लिए CASE (ANSI SQL) प्राथमिकता दें।