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

MySQL में IF कंडीशन के साथ UPDATE: सशर्त अपडेट कैसे करें

MySQL UPDATE स्टेटमेंट में IF() फंक्शन और CASE से सशर्त अपडेट करना

IF() फंक्शन सिंटैक्स:

UPDATE yourTableName 
SET column1 = IF(condition, value_if_true, value_if_false),
    column2 = IF(condition, value_if_true, value_if_false);

व्यावहारिक उदाहरण

1. टेबल बनाएं:

mysql> CREATE TABLE UpdateWithIfCondition (
    -> BookId INT,
    -> BookName VARCHAR(200)
    -> ); 
Query OK, 0 rows affected (0.60 sec)

2. डेटा डालें:

mysql> INSERT INTO UpdateWithIfCondition VALUES(1000,'C in Depth');
mysql> INSERT INTO UpdateWithIfCondition VALUES(1001,'Introduction to Java');

3. मूल डेटा:

+--------+----------------------+ 
| BookId | BookName             | 
+--------+----------------------+ 
| 1000   | C in Depth           | 
| 1001   | Introduction to Java | 
+--------+----------------------+ 
2 rows in set (0.00 sec)

4. IF() से सशर्त अपडेट (दोनों कॉलम एक साथ):

mysql> UPDATE UpdateWithIfCondition 
    -> SET BookName = IF(BookName = 'C in Depth', 'Introduction to C', BookName),
    ->     BookId = IF(BookId = 1001, 2000, BookId); 
Query OK, 2 rows affected (0.43 sec) 
Rows matched: 2 Changed: 2 Warnings: 0

5. अपडेट के बाद:

+--------+----------------------+ 
| BookId | BookName             | 
+--------+----------------------+ 
| 1000   | Introduction to C    | 
| 2000   | Introduction to Java | 
+--------+----------------------+ 
2 rows in set (0.00 sec)

CASE स्टेटमेंट विकल्प (अधिक शक्तिशाली):

UPDATE table_name
SET column = CASE
    WHEN condition1 THEN value1
    WHEN condition2 THEN value2
    ELSE column  -- कोई बदलाव नहीं
END;

उदाहरण:

UPDATE products
SET price = CASE
    WHEN category = 'electronics' THEN price * 1.1
    WHEN category = 'clothing' THEN price * 1.05
    ELSE price
END;

IF() vs CASE:

विशेषताIF()CASE
शर्तेंएकएकाधिक
पठनीयतासरल केस के लिए अच्छीजटिल लॉजिक के लिए बेहतर
मानकMySQL-विशिष्टANSI SQL
नेस्टिंगमुश्किलआसान

WHERE क्लॉज के साथ संयोजन:

UPDATE table_name
SET col = IF(condition, new_val, col)
WHERE some_other_condition;

नोट: WHERE क्लॉज पंक्तियों को फ़िल्टर करता है, IF/CASE मान तय करता है।

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

    MySQL IF() फ़ंक्शन के साथ सशर्त अपडेट MySQL का IF() फ़ंक्शन आपको एक ही UPDATE स्टेटमेंट में सशर्त तर्क के आधार पर अलग-अलग मान सेट करने की अनुमति देता है। सिंटैक्स: IF(शर्त, मान_यदि_सत्य, मान_यदि_असत्य)। उदाहरण: विशिष्ट नामों को सशर्त रूप से अपडेट करना पहले एक नाम टेबल बनाते हैं: SELECT * FROM Demo

  1. - MySQL में शर्त के साथ स्टोर्ड प्रोसीजर से रिकॉर्ड कैसे अपडेट करें?

    MySQL में स्टोर्ड प्रोसीजर के अंदर UPDATE और WHERE क्लॉज का उपयोग करके शर्त के आधार पर रिकॉर्ड अपडेट किए जा सकते हैं। सिंटैक्स DELIMITER // CREATE PROCEDURE procedure_name(IN param1 TYPE, IN param2 TYPE) BEGIN UPDATE table_name SET col1 = param1, col2 = param2 WHERE condition; END // DE

  1. - MySQL में एक क्वेरी से दो कॉलम कैसे अपडेट करें?

    MySQL में एक ही UPDATE स्टेटमेंट में एकाधिक कॉलम अपडेट करने के लिए, SET क्लॉज़ में कॉलम को कॉमा से अलग करके सूचीबद्ध करें। यह एटॉमिक ऑपरेशन सुनिश्चित करता है और क्वेरी ओवरहेड कम करता है। उदाहरण: FirstName और LastName एक साथ अपडेट करना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1909 ( Id