IS NULL और UPDATE का उपयोग
NULL मानों को ढूंढकर उन्हें नए मान से अपडेट करने के लिए IS NULL कंडीशन के साथ UPDATE स्टेटमेंट का उपयोग करें।
उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना
mysql> CREATE TABLE DemoTable768 (
ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName VARCHAR(100),
ClientAge INT
);
Query OK, 0 rows affected (0.47 sec)
रिकॉर्ड्स इन्सर्ट करना (कुछ NULL नाम के साथ)
mysql> INSERT INTO DemoTable768(ClientName,ClientAge) VALUES
('John',23),(NULL,26),('Carol',28),(NULL,24);
Query OK, 4 rows affected (...)
सभी रिकॉर्ड्स देखना
mysql> SELECT * FROM DemoTable768;
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 1 | John | 23 | | 2 | NULL | 26 | | 3 | Carol | 28 | | 4 | NULL | 24 | +----------+------------+-----------+ 4 rows in set (0.00 sec)
NULL मानों को 'Chris' से अपडेट करने की क्वेरी
mysql> UPDATE DemoTable768
SET ClientName = 'Chris'
WHERE ClientName IS NULL;
Query OK, 2 rows affected (0.41 sec)
Rows matched: 2 Changed: 2 Warnings: 0
अपडेट के बाद डेटा देखना
mysql> SELECT * FROM DemoTable768;
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 1 | John | 23 | | 2 | Chris | 26 | | 3 | Carol | 28 | | 4 | Chris | 24 | +----------+------------+-----------+ 4 rows in set (0.00 sec)
महत्वपूर्ण बिंदु
- IS NULL का उपयोग करें,
= NULLका नहीं - NULL की तुलना=से नहीं की जा सकती IS NOT NULLगैर-NULL मानों के लिए उपयोग करेंRows matched: 2 Changed: 2दर्शाता है कि 2 रो मिले और दोनों बदले गए
संबंधित फंक्शन्स: NULL हैंडलिंग
| फंक्शन | उद्देश्य | उदाहरण |
|---|---|---|
IFNULL(expr, val) | NULL हो तो val लौटाएं | IFNULL(ClientName, 'Unknown') |
COALESCE(val1, val2, ...) | पहला गैर-NULL मान लौटाएं | COALESCE(Phone, Email, 'N/A') |
NULLIF(expr1, expr2) | दोनों समान हों तो NULL लौटाएं | NULLIF(ClientName, '') |
खाली स्ट्रिंग ('') vs NULL
खाली स्ट्रिंग और NULL अलग हैं। दोनों को हैंडल करने के लिए:
UPDATE DemoTable768 SET ClientName = 'Chris' WHERE ClientName IS NULL OR ClientName = '';
डिफ़ॉल्ट मान सेट करना (भविष्य के इन्सर्ट्स के लिए)
ALTER TABLE DemoTable768 MODIFY ClientName VARCHAR(100) DEFAULT 'Unknown';