Multiple Rows Update करें
कई rows update करना
एकल UPDATE एक साथ कई rows बदल सकता है — आपको प्रति row एक statement नहीं चाहिए। WHERE clause से यह एक समूह target करता है, expressions से नई values गणना कर सकता है, और CASE से हर row को अलग value दे सकता है। बस हमेशा सुरक्षित update कीजिए।
Condition से update
UPDATE students SET marks = marks + 5 WHERE class = 10;
Class 10 के हर student को एक statement में 5 bonus marks मिलते हैं। ध्यान दीजिए marks = marks + 5 हर row की मौजूदा value इस्तेमाल करके नई गणना करता है।
कई columns update
UPDATE employees SET salary = salary * 1.1, status = 'reviewed' WHERE department = 'Sales';
आप एक UPDATE में कई columns set कर सकते हैं, commas से अलग। यहाँ Sales employees को साथ में 10% raise और status बदलाव मिलता है।
CASE से अलग values
UPDATE students
SET grade = CASE
WHEN marks >= 90 THEN 'A'
WHEN marks >= 75 THEN 'B'
ELSE 'C'
END;
SET clause में CASE हर row को उसके अपने data के आधार पर value देता है। यहाँ हर student का grade उनके marks से set होता है — सब एक statement में।
Join से update
UPDATE orders o JOIN customers c ON o.customer_id = c.id SET o.city = c.city;
JOIN वाला UPDATE संबंधित table से values copy करता है। यहाँ हर order का city उसके customer के city से भरता है, key से मिलाकर — कोई मैन्युअल lookups नहीं।
सुरक्षित करना
- हमेशा WHERE इस्तेमाल कीजिए (जब तक सच में सारी rows का मतलब न हो)।
- पहले test कीजिए उसी condition वाले SELECT से।
- Transaction इस्तेमाल कीजिए जोखिम भरे updates को, ताकि ROLLBACK कर सकें।
ये आदतें ग़लती से हर row update करने की classic आपदा रोकती हैं।
आम गलतियाँ
- WHERE छोड़ना। तब हर row update होती है।
- CASE में END भूलना। CASE
ENDसे ख़त्म होना चाहिए। - SELECT से test न करना। Update से पहले rows preview कीजिए।
- बड़े updates पर transactions छोड़ना। वे गलतियाँ undo करने देते हैं।
सारांश
- WHERE वाला एक UPDATE सारी मेल खाती rows एक साथ बदलता है।
- मौजूदा values से गणना को
marks + 5जैसे expressions इस्तेमाल कीजिए। - एक statement में कई columns set कीजिए, commas से अलग।
- हर row को अलग value देने को CASE इस्तेमाल कीजिए।
- JOIN से update कीजिए, और हमेशा WHERE व testing से सुरक्षित update कीजिए।
आगे, इन्हें सुरक्षित चलाइए safe UPDATE और DELETE से, या कई rows जोड़िए inserting multiple rows में।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
MySQL में कई rows कैसे update करूँ?
UPDATE students SET marks = marks + 5 WHERE class = 10;। जहाँ condition true है वे सारी rows एक statement में update होती हैं।एक statement में rows को अलग values कैसे update करूँ?
SET grade = CASE WHEN marks >= 90 THEN 'A' WHEN marks >= 75 THEN 'B' ELSE 'C' END। यह हर row को उसके अपने data के आधार पर value देता है, सब एक UPDATE में।दूसरी table के data से table कैसे update करूँ?
UPDATE orders o JOIN customers c ON o.customer_id = c.id SET o.city = c.city;। यह joined table से मेल खाती values update होती rows में copy करता है।क्या column को उसकी मौजूदा value के आधार पर update कर सकता हूँ?
SET price = price * 1.1 हर मेल खाती price को 10% बढ़ाता है। MySQL हर row को नई value गणना करने को मौजूदा value इस्तेमाल करता है।