Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में IFNULL() से केवल NULL मानों को अपडेट करना

IFNULL() फंक्शन के साथ UPDATE

IFNULL(expr, val) फंक्शन expr NULL होने पर val लौटाता है, अन्यथा expr। UPDATE में उपयोग करके केवल NULL मानों को डिफ़ॉल्ट मान से बदलें।

उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना

mysql> CREATE TABLE DemoTable817(Value INT);
Query OK, 0 rows affected (0.53 sec)

रिकॉर्ड्स इन्सर्ट करना (NULL मान सहित)

mysql> INSERT INTO DemoTable817 VALUES(10),(NULL),(20),(NULL);
Query OK, 4 rows affected (...)

सभी रिकॉर्ड्स देखना

mysql> SELECT * FROM DemoTable817;
+-------+
| Value |
+-------+
| 10    |
| NULL  |
| 20    |
| NULL  |
+-------+
4 rows in set (0.00 sec)

NULL मानों को 0 से अपडेट करने की क्वेरी

mysql> UPDATE DemoTable817 SET Value = IFNULL(Value, 0);
Query OK, 2 rows affected (0.17 sec)
Rows matched: 4  Changed: 2  Warnings: 0

अपडेट के बाद डेटा देखना

mysql> SELECT * FROM DemoTable817;
+-------+
| Value |
+-------+
| 10    |
| 0     |
| 20    |
| 0     |
+-------+
4 rows in set (0.00 sec)

कैसे काम करता है

  • IFNULL(Value, 0) - यदि Value NULL है तो 0 लौटाता है, अन्यथा Value ही लौटाता है
  • SET Value = IFNULL(Value, 0) - गैर-NULL मान अपरिवर्तित रहते हैं, NULL 0 बन जाते हैं
  • Changed: 2 - केवल 2 रो वास्तव में बदले गए (दो NULL वाले)

संबंधित फंक्शन्स

फंक्शनव्यवहारउदाहरण परिणाम
IFNULL(expr, val)2 आर्गुमेंट, MySQL-विशिष्टIFNULL(NULL, 0) = 0
COALESCE(v1, v2, ...)एकाधिक आर्गुमेंट, पहला गैर-NULLCOALESCE(NULL, NULL, 5) = 5
NULLIF(expr1, expr2)समान हों तो NULL, अन्यथा expr1NULLIF(5, 5) = NULL
ISNULL(expr)NULL हो तो 1, अन्यथा 0ISNULL(NULL) = 1

COALESCE के साथ समान अपडेट

UPDATE DemoTable817 SET Value = COALESCE(Value, 0);

WHERE क्लॉज के साथ (अधिक स्पष्ट)

UPDATE DemoTable817 SET Value = 0 WHERE Value IS NULL;

CASE एक्सप्रेशन के साथ सशर्त अपडेट

UPDATE DemoTable817 
SET Value = CASE 
    WHEN Value IS NULL THEN 0
    WHEN Value < 0 THEN ABS(Value)
    ELSE Value
END;

डिफ़ॉल्ट मान सेट करना (भविष्य के लिए)

ALTER TABLE DemoTable817 MODIFY Value INT DEFAULT 0;

नोट

IFNULL SELECT में डिस्प्ले के लिए बेहतर है, UPDATE में WHERE Value IS NULL अधिक स्पष्ट और मानक SQL है।

  1. - MySQL में IFNULL का उपयोग करके NULL मानों को 1 के रूप में प्रदर्शित/अपडेट करें

    MySQL में NULL मानों को संभालना: IFNULL() और COALESCE() MySQL में IFNULL() फ़ंक्शन का उपयोग करके आप NULL मानों को डिफ़ॉल्ट मान से बदल सकते हैं। यह लेख दिखाता है कि कैसे NULL मानों को 1 से अपडेट करें और उन्हें प्रदर्शित करें। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) NULL मानों सहित डेटा

  1. - MySQL में पहले तीन पंक्तियों के लिए कस्टम मान सेट करना

    ORDER BY और LIMIT से पहली N पंक्तियां अपडेट करें पहली तीन पंक्तियों के लिए एक विशिष्ट मान सेट करने के लिए ORDER BY और LIMIT 3 का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1968 ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(20) ); Query OK, 0 rows affected (0.0

  1. - MySQL में कॉलम मानों के लिए ENUM कैसे सेट करें?

    ENUM कॉलम के साथ टेबल बनाना टेबल बनाते समय ENUM प्रकार निर्दिष्ट करें: ); रिकॉर्ड डालना INSERT INTO DemoTable2019 VALUES (45, Second); सभी रिकॉर्ड देखना SELECT * FROM DemoTable2019; +--------------+---------------+ | StudentMarks | StudentStatus | +--------------+---------------+ | 96