UPDATE स्टेटमेंट का उपयोग
किसी विशिष्ट रो के केवल एक कॉलम को अपडेट करने के लिए UPDATE स्टेटमेंट में SET क्लॉज और WHERE क्लॉज का उपयोग करें।
उदाहरण: टेबल बनाना और डेटा इन्सर्ट करना
mysql> CREATE TABLE DemoTable770 (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Value INT
);
Query OK, 0 rows affected (0.65 sec)
रिकॉर्ड्स इन्सर्ट करना
mysql> INSERT INTO DemoTable770(Value) VALUES(10),(90),(160),(450),(560); Query OK, 5 rows affected (...)
सभी रिकॉर्ड्स देखना
mysql> SELECT * FROM DemoTable770;
+----+-------+ | Id | Value | +----+-------+ | 1 | 10 | | 2 | 90 | | 3 | 160 | | 4 | 450 | | 5 | 560 | +----+-------+ 5 rows in set (0.00 sec)
एकल कॉलम अपडेट क्वेरी
ID=4 वाले रो के Value कॉलम में 150 जोड़ना:
mysql> UPDATE DemoTable770 SET Value = Value + 150 WHERE Id = 4; Query OK, 1 row affected (0.52 sec) Rows matched: 1 Changed: 1 Warnings: 0
अपडेट के बाद डेटा देखना
mysql> SELECT * FROM DemoTable770;
+----+-------+ | Id | Value | +----+-------+ | 1 | 10 | | 2 | 90 | | 3 | 160 | | 4 | 600 | | 5 | 560 | +----+-------+ 5 rows in set (0.00 sec)
मुख्य बिंदु
SETक्लॉज में केवल वही कॉलम निर्दिष्ट करें जिसे अपडेट करना हैWHEREक्लॉज महत्वपूर्ण है - इसके बिना सभी रो अपडेट हो जाएंगे- वर्तमान मान का उपयोग करके गणना कर सकते हैं:
Value = Value + 150 Rows matched: 1 Changed: 1पुष्टि करता है कि एक रो मिला और बदला गया
एक साथ कई कॉलम अपडेट करना
UPDATE DemoTable770
SET Value = Value + 100,
UpdatedAt = NOW()
WHERE Id = 4;
सुरक्षित अपडेट मोड
MySQL में SQL_SAFE_UPDATES मोड सक्षम होने पर, WHERE क्लॉज के बिना UPDATE ब्लॉक हो जाता है। इसे अस्थायी रूप से अक्षम करने के लिए:
SET SQL_SAFE_UPDATES = 0; -- अपडेट क्वेरी चलाएं SET SQL_SAFE_UPDATES = 1;
अन्य उपयोगी अपडेट पैटर्न
- केस स्टेटमेंट:
SET Status = CASE WHEN Value > 100 THEN 'HIGH' ELSE 'LOW' END - सबक्वेरी से मान:
SET Value = (SELECT MAX(Value) FROM OtherTable) - जॉइन के साथ अपडेट:
UPDATE t1 JOIN t2 ON ... SET t1.Value = t2.NewValue