MySQL IN() ऑपरेटर के साथ बल्क अपडेट
MySQL में IN() ऑपरेटर का उपयोग करके आप एक ही WHERE क्लॉज में कई मानों को निर्दिष्ट कर सकते हैं, जिससे एकाधिक पंक्तियों को एक साथ अपडेट करना आसान हो जाता है।
उदाहरण: कर्मचारी नामों को बल्क में अपडेट करना
पहले एक टेबल बनाते हैं और डेटा डालते हैं:
mysql> CREATE TABLE DemoTable1420 (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> FirstName VARCHAR(20),
-> LastName VARCHAR(20),
-> Age INT
-> );
Query OK, 0 rows affected (1.12 sec)
mysql> INSERT INTO DemoTable1420 (FirstName, LastName, Age) VALUES
-> ('Chris', 'Brown', 23), ('David', 'Miller', 22),
-> ('John', 'Smith', 24), ('John', 'Doe', 21),
-> ('Adam', 'Smith', 25);
Query OK, 5 rows affected (0.16 sec)
mysql> SELECT * FROM DemoTable1420;
+----+-----------+----------+------+
| Id | FirstName | LastName | Age |
+----+-----------+----------+------+
| 1 | Chris | Brown | 23 |
| 2 | David | Miller | 22 |
| 3 | John | Smith | 24 |
| 4 | John | Doe | 21 |
| 5 | Adam | Smith | 25 |
+----+-----------+----------+------+
5 rows in set (0.00 sec)
IN() के साथ UPDATE क्वेरी
ID 1, 3, 4, 5 वाली पंक्तियों को एक साथ अपडेट करें:
mysql> UPDATE DemoTable1420
-> SET FirstName = 'Carol', LastName = 'Taylor'
-> WHERE Id IN (1, 3, 4, 5);
Query OK, 4 rows affected (0.42 sec)
Rows matched: 4 Changed: 4 Warnings: 0
अपडेट के बाद परिणाम
mysql> SELECT * FROM DemoTable1420; +----+-----------+----------+------+ | Id | FirstName | LastName | Age | +----+-----------+----------+------+ | 1 | Carol | Taylor | 23 | | 2 | David | Miller | 22 | | 3 | Carol | Taylor | 24 | | 4 | Carol | Taylor | 21 | | 5 | Carol | Taylor | 25 | +----+-----------+----------+------+ 5 rows in set (0.00 sec)
मुख्य लाभ
- कुशलता: एक ही क्वेरी में कई पंक्तियाँ अपडेट होती हैं
- पठनीयता: कोड साफ और समझने में आसान होता है
- प्रदर्शन: कई अलग-अलग UPDATE क्वेरी से तेज़
- रखरखाव: मानों की सूची आसानी से संशोधित की जा सकती है