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

MySQL स्टोर्ड प्रोसीजर में शर्ती WHERE क्लॉज: NULL मानों के लिए कस्टम मान सेट करें

MySQL स्टोर्ड प्रोसीजर में UPDATE ... WHERE IS NULL

स्टोर्ड प्रोसीजर के अंदर UPDATE स्टेटमेंट के साथ WHERE column IS NULL का उपयोग करके NULL मानों को एक कस्टम मान से अपडेट किया जा सकता है।

उदाहरण: NULL FirstName को 'Robert' से बदलें

टेबल बनाएं:

CREATE TABLE DemoTable (
    Id INT,
    FirstName VARCHAR(50)
);

INSERT INTO DemoTable VALUES (100, 'Chris'), (101, NULL), (102, 'Mike'), (103, NULL);

डेटा:

+------+-----------+
| Id   | FirstName |
+------+-----------+
| 100  | Chris     |
| 101  | NULL      |
| 102  | Mike      |
| 103  | NULL      |
+------+-----------+

स्टोर्ड प्रोसीजर बनाएं

DELIMITER //
CREATE PROCEDURE where_clauseProc()
BEGIN
    UPDATE DemoTable 
    SET FirstName = 'Robert' 
    WHERE FirstName IS NULL;
END //
DELIMITER ;

प्रोसीजर कॉल करें

CALL where_clauseProc();

परिणाम:

Query OK, 2 rows affected (0.10 sec)

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

SELECT * FROM DemoTable;
+------+-----------+
| Id   | FirstName |
+------+-----------+
| 100  | Chris     |
| 101  | Robert    |
| 102  | Mike      |
| 103  | Robert    |
+------+-----------+

महत्वपूर्ण बिंदु

  • IS NULL — NULL मानों की जांच के लिए सही तरीका
  • = NULL — गलत, हमेशा UNKNOWN लौटाता है
  • स्टोर्ड प्रोसीजर में DELIMITER बदलना आवश्यक है
  • ROW_COUNT() से प्रभावित पंक्तियों की संख्या जांच सकते हैं

पैरामीटराइज़्ड प्रोसीजर (अधिक लचीला)

DELIMITER //
CREATE PROCEDURE update_null_names(IN new_name VARCHAR(50))
BEGIN
    UPDATE DemoTable 
    SET FirstName = new_name 
    WHERE FirstName IS NULL;
END //
DELIMITER ;

CALL update_null_names('Default Name');
  1. - MySQL में CASE स्टेटमेंट से प्रत्येक SELECT फील्ड के लिए शर्ती WHERE

    CASE एक्सप्रेशन से कॉलम-विशिष्ट शर्ती एग्रीगेशन WHERE क्लॉज के बजाय CASE स्टेटमेंट का उपयोग करके प्रत्येक चयनित फील्ड के लिए अलग-अलग शर्तें लागू करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1988 ( Value1 int, Value2 int, Price int ); Query OK, 0 rows affected (0.64 sec) mysql>

  1. - MySQL में UNION ALL का उपयोग करके कस्टम कॉलम्स के लिए एकाधिक मान सेट करें

    MySQL में UNION ALL का उपयोग करके व्युत्पन्न कॉलम मान उत्पन्न करना UNION ALL का उपयोग करके आप एक ही टेबल पर अलग-अलग गणनाएँ कर सकते हैं और परिणामों को लंबवत रूप से संयोजित कर सकते हैं, जिससे प्रभावी रूप से प्रत्येक मूल पंक्ति के लिए कई व्युत्पन्न पंक्तियाँ बनती हैं। टेबल बनाना ); Query OK, 0 rows a

  1. - MySQL में IF स्टेटमेंट से ENUM मानों के लिए कस्टम संदेश सेट करें

    IF() फ़ंक्शन से ENUM Y/N को पठनीय संदेश में बदलें ENUM कॉलम के Y/N मानों को Active Member/Not Active Member जैसे कस्टम संदेश में बदलने के लिए IF() का उपयोग करें। टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1992 ( ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY, ClientName varchar(20),