Database
 sql >> डेटाबेस >  >> RDS >> Database

किसी अन्य कॉलम के फ़िल्टर के आधार पर कॉलम को कैसे अपडेट करें

इस ट्यूटोरियल में, हम अधिक सामान्य अपडेट से अधिक विशिष्ट तरीकों की ओर बढ़ते हुए SQL का उपयोग करके तालिका में पंक्तियों को अपडेट करने के विभिन्न तरीकों के बारे में जानेंगे।

पूर्ण अपडेट

यदि प्रत्येक फ़ील्ड को समान मान पर अपडेट करने की आवश्यकता है, तो आप एक साधारण UPDATE . का उपयोग करके ऐसा कर सकते हैं आदेश।

UPDATE table
SET col = new_value;

सशर्त अपडेट

कॉलम का वर्तमान मान शर्त से मेल खाता है या नहीं, इस पर निर्भर करते हुए एक सशर्त अद्यतन करने के लिए, आप एक WHERE जोड़ सकते हैं खंड जो इसे निर्दिष्ट करता है। डेटाबेस को पहले पंक्तियाँ मिलेंगी जो WHERE . से मेल खाती हैं खंड और उसके बाद केवल उन पंक्तियों पर अद्यतन करें।

UPDATE table
SET col = new_value
WHERE col = old_value;

इस पर विस्तार करने के लिए, आप WHERE . में कुछ भी जोड़ सकते हैं जब तक यह एक वैध अभिव्यक्ति है, तब तक आप इसे पसंद करते हैं। तो उसी तालिका में किसी अन्य कॉलम के मूल्य के आधार पर एक अद्यतन करने के लिए, आप निम्न को निष्पादित कर सकते हैं:

UPDATE table
SET col = new_value
WHERE other_col = some_other_value;

चूंकि WHERE क्लॉज में कोई भी मान्य अभिव्यक्ति हो सकती है, आपके पास अपडेट करने की भी संभावना है जहां कई कॉलम मानदंडों को पूरा करते हैं

UPDATE table
SET col = new_value
WHERE col = old_value
AND other_col = some_other_value;

UPDATE table
SET col = new_value
WHERE col = old_value
OR other_col = some_other_value;

जैसा कि आप देख सकते हैं, आप WHERE . का विस्तार कर सकते हैं आपको जो चाहिए उसे अपडेट करने के लिए पंक्तियों को फ़िल्टर करने के लिए जितना चाहें उतना क्लॉज करें।

अब यदि आप किसी अन्य तालिका की स्थिति के आधार पर एक तालिका में पंक्तियों को अद्यतन करना चाहते हैं तो क्या होगा? यह प्रश्न कुछ अलग तरीकों की ओर ले जाता है जिससे आप ऐसा कर सकते हैं।

चूंकि WHERE खंड में कोई भी मान्य अभिव्यक्ति हो सकती है, आप एक सबक्वेरी का उपयोग कर सकते हैं:

UPDATE table
SET col = new_value
WHERE other_col IN (
SELECT other_col
FROM other_table
WHERE conditional_col = 1
);

आप SET . में एक सबक्वेरी का भी उपयोग कर सकते हैं यदि आप कॉलम को किसी अन्य तालिका में किसी मान पर सेट करना चाहते हैं तो कथन का भाग

UPDATE table
SET col = (
SELECT other_col
FROM other_table
WHERE other_table.table_id = table.id
);

UPDATE . के बाद कई तालिकाओं को निर्दिष्ट करना शायद एक आसान तरीका है खंड। केवल SET एक्सप्रेशन अपडेट करेगा लेकिन अतिरिक्त तालिकाओं को सूचीबद्ध करने से तालिकाओं को शामिल किया जा सकेगा।

UPDATE table, other_table
SET table.col = other_table.other_col
WHERE table.id = other_table.table_id;

इसी तरह WHERE . का विस्तार करने के लिए खंड, यदि आपके पास कई टेबल हैं जिन पर शामिल होने की आवश्यकता है, तो आपको आवश्यक सभी तालिकाओं को शामिल करने के लिए तालिकाओं की मात्रा का विस्तार किया जा सकता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. शुरुआती के लिए गिट टिप्स और सर्वोत्तम अभ्यास

  2. TimescaleDB के लिए प्रदर्शन निगरानी

  3. DBCC CLONEDATABASE के उपयोग का विस्तार

  4. टेबल एक्सप्रेशन के मूल तत्व, भाग 6 - रिकर्सिव सीटीई

  5. घुटना-झटका प्रदर्शन ट्यूनिंग:अस्थायी तालिकाओं का गलत उपयोग