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

REPLACE के साथ अपडेट स्टेटमेंट में mysql केस

चूंकि आप LIKE '%abc%' . का उपयोग कर रहे हैं , अद्यतन विवरण के लिए एक पूर्ण तालिका स्कैन की आवश्यकता होगी। उस स्थिति में, दो कथनों के संयोजन से समग्र प्रदर्शन में सुधार होगा। हालांकि, आपके सुझाव में, हर एक पंक्ति को अपडेट किया जाता है और उनमें से अधिकांश को बिना बदले अपडेट किया जाता है (कॉलम 1 मान को कॉलम 1 मान से बदल दिया जाता है)।

आप यह सुनिश्चित करना चाहते हैं कि आप WHERE . रखें खंड ताकि केवल उन पंक्तियों को बदल दिया जाए जिन्हें वास्तव में परिवर्तन की आवश्यकता है। डिस्क पर यह अनावश्यक लेखन यह जाँचने की तुलना में धीमा है कि क्या पंक्ति मापदंड से मेल खाती है।

यह करें:

UPDATE table1
SET column1 = 
CASE
WHEN column1 LIKE '%abc%' THEN REPLACE(column1, 'abc', 'abc1')
WHEN column1 LIKE '%def%' THEN REPLACE(column1, 'def', 'def1')
END
WHERE column1 LIKE '%abc%' OR column1 LIKE '%def%';



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django क्वेरी जहां एक फ़ील्ड डुप्लिकेट है और दूसरा अलग है

  2. mysql में सशर्त शामिल हों

  3. मैक ओएस 10.6.5 . में mysql5.58 अनस्टार्ट सर्वर

  4. पोस्टग्रेज में दो कॉलम के रूप में दो चुनिंदा स्टेटमेंट कैसे बनाएं?

  5. मेरा डेटाबेस बैकअप स्क्रिप्ट php में काम क्यों नहीं कर रहा है?