MySQL में IS NULL का उपयोग करके NULL कॉलम को परिकलित मानों से अपडेट करना
जब एक कॉलम में NULL मान हों और आप उन्हें अन्य कॉलम के आधार पर परिकलित मान से भरना चाहते हों, तो UPDATE के साथ WHERE ... IS NULL का उपयोग करें।
व्यावहारिक उदाहरण
तालिका बनाना
mysql> CREATE TABLE DemoTable (
ProductPrice INT,
ProductQuantity INT,
TotalAmount INT
);
TotalAmount के बिना रिकॉर्ड डालना
mysql> INSERT INTO DemoTable(ProductPrice, ProductQuantity) VALUES(100, 2); mysql> INSERT INTO DemoTable(ProductPrice, ProductQuantity) VALUES(500, 4); mysql> INSERT INTO DemoTable(ProductPrice, ProductQuantity) VALUES(1000, 10);
अपडेट से पहले डेटा देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+--------------+-----------------+-------------+ | ProductPrice | ProductQuantity | TotalAmount | +--------------+-----------------+-------------+ | 100 | 2 | NULL | | 500 | 4 | NULL | | 1000 | 10 | NULL | +--------------+-----------------+-------------+
NULL मानों को परिकलित मान से भरना
mysql> UPDATE DemoTable SET TotalAmount = (ProductPrice * ProductQuantity) WHERE TotalAmount IS NULL;
आउटपुट: Query OK, 3 rows affected
अपडेट के बाद डेटा देखना
mysql> SELECT * FROM DemoTable;
आउटपुट:
+--------------+-----------------+-------------+ | ProductPrice | ProductQuantity | TotalAmount | +--------------+-----------------+-------------+ | 100 | 2 | 200 | | 500 | 4 | 2000 | | 1000 | 10 | 10000 | +--------------+-----------------+-------------+
मुख्य बिंदु
IS NULL- NULL मानों की जांच के लिए सही तरीका (= NULLकाम नहीं करता)- केवल NULL वाली पंक्तियों को अपडेट करता है, मौजूदा मानों को नहीं बदलता
- गणना में अन्य कॉलम के मानों का उपयोग किया जा सकता है
संबंधित: COALESCE() फ़ंक्शन का उपयोग SELECT में NULL के लिए डिफ़ॉल्ट मान प्रदान करने के लिए किया जा सकता है।