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

MySQL में IF() फ़ंक्शन का उपयोग करके शर्त के आधार पर अलग-अलग फ़ील्ड अपडेट करना

MySQL IF() फ़ंक्शन के साथ सशर्त अपडेट

MySQL का IF() फ़ंक्शन आपको एक ही UPDATE स्टेटमेंट में सशर्त तर्क के आधार पर अलग-अलग मान सेट करने की अनुमति देता है। सिंटैक्स: IF(शर्त, मान_यदि_सत्य, मान_यदि_असत्य)।

उदाहरण: विशिष्ट नामों को सशर्त रूप से अपडेट करना

पहले एक नाम टेबल बनाते हैं:

mysql> CREATE TABLE DemoTable1436 (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name VARCHAR(20)
    -> );
Query OK, 0 rows affected (1.06 sec)

mysql> INSERT INTO DemoTable1436 (Name) VALUES
    -> ('Chris'), ('David'), ('Bob'), ('David'), ('David');
Query OK, 5 rows affected (0.22 sec)

mysql> SELECT * FROM DemoTable1436;
+----+-------+
| Id | Name  |
+----+-------+
|  1 | Chris |
|  2 | David |
|  3 | Bob   |
|  4 | David |
|  5 | David |
+----+-------+
5 rows in set (0.00 sec)

IF() के साथ सशर्त UPDATE

केवल ID=2 के लिए, यदि नाम 'David' है तो 'Carol Taylor' में बदलें:

mysql> UPDATE DemoTable1436
    -> SET Name = IF(Name = 'David', 'Carol Taylor', Name)
    -> WHERE Id = 2;
Query OK, 1 row affected (0.31 sec)
Rows matched: 1  Changed: 1  Warnings: 0

परिणाम

mysql> SELECT * FROM DemoTable1436;
+----+--------------+
| Id | Name         |
+----+--------------+
|  1 | Chris        |
|  2 | Carol Taylor |
|  3 | Bob          |
|  4 | David        |
|  5 | David        |
+----+--------------+
5 rows in set (0.00 sec)

व्याख्या

  • IF(Name = 'David', 'Carol Taylor', Name) जांचता है कि क्या नाम 'David' है
  • सत्य: 'Carol Taylor' पर सेट करता है
  • असत्य: मूल नाम रखता है
  • WHERE Id = 2 केवल उस पंक्ति तक सीमित करता है

एकाधिक शर्तों के लिए CASE स्टेटमेंट

UPDATE DemoTable1436
SET Name = CASE
    WHEN Name = 'David' THEN 'Carol Taylor'
    WHEN Name = 'Bob' THEN 'Robert'
    ELSE Name
END
WHERE Id IN (2, 3);

IF() बनाम CASE

  1. - MySQL में शर्त के आधार पर कॉलम का SUM कैसे निकालें

    WHERE क्लॉज के साथ कंडीशनल SUM आइए पहले एक टेबल बनाते हैं: mysql> CREATE TABLE DemoTable ( CustomerId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, ProductAmount INT, CustomerCountryName VARCHAR(10) ); रिकॉर्ड्स इन्सर्ट करें: mysql> INSERT INTO DemoTable (ProductAmount, CustomerCountryN

  1. - MySQL में JOIN और UPDATE से दूसरी टेबल के कॉलम मान के आधार पर कॉलम अपडेट करें

    MySQL में UPDATE ... JOIN सिंटैक्स का उपयोग करके एक टेबल के कॉलम को दूसरी टेबल के संबंधित कॉलम मान के आधार पर अपडेट कर सकते हैं। यह डेटा सिंक्रनाइज़ेशन, माइग्रेशन, और संदर्भ डेटा लागू करने के लिए मानक पैटर्न है। सिंटैक्स UPDATE target_table t1 JOIN source_table t2 ON t1.join_col = t2.join_col SET t

  1. - MySQL में एक ही क्वेरी में एकाधिक रिकॉर्ड कैसे अपडेट करें?

    MySQL में UPDATE स्टेटमेंट में WHERE क्लॉज का उपयोग करके एक ही क्वेरी में एकाधिक कॉलम अपडेट किए जा सकते हैं, लेकिन एकाधिक पंक्तियों को अलग-अलग मानों से अपडेट करने के लिए CASE या एकाधिक क्वेरी की आवश्यकता होती है। उदाहरण: एक पंक्ति, एकाधिक कॉलम तालिका बनाएं: mysql> CREATE TABLE DemoTable ( -&

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
पहलूIF()CASE
शर्तेंएकल शर्तएकाधिक शर्तें
पठनीयतासरल के लिए अच्छीजटिल तर्क के लिए बेहतर
मानक SQLMySQL-विशिष्टANSI SQL मानक