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

वाइल्डकार्ड से बदलने के लिए MySQL

अपडेट:MySQL 8.0 में एक फ़ंक्शन है REGEX_REPLACE() .

नीचे 2014 से मेरा उत्तर है, जो अभी भी 8.0 से पहले MySQL के किसी भी संस्करण पर लागू होता है:

REPLACE() के पास वाइल्डकार्ड, पैटर्न, रेगुलर एक्सप्रेशन आदि के लिए कोई समर्थन नहीं है। REPLACE() केवल एक स्थिर स्ट्रिंग को दूसरी स्थिर स्ट्रिंग के लिए प्रतिस्थापित करता है।

आप स्ट्रिंग के प्रमुख भाग और स्ट्रिंग के पीछे वाले भाग को चुनने के लिए कुछ जटिल कोशिश कर सकते हैं:

UPDATE table
SET Configuration = CONCAT(
      SUBSTR(Configuration, 1, LOCATE('<tag>', Configuration)+4),
      NEW_DATA,
      SUBSTR(Configuration, LOCATE('</tag>', Configuration)
    )

लेकिन यह उन मामलों के लिए काम नहीं करता है जब आपके पास <tag> . की कई घटनाएं होती हैं ।

आपको पंक्ति को एक एप्लिकेशन में वापस लाना पड़ सकता है, अपनी पसंदीदा भाषा का उपयोग करके स्ट्रिंग प्रतिस्थापन करना होगा, और पंक्ति को वापस पोस्ट करना होगा। दूसरे शब्दों में, प्रत्येक पंक्ति के लिए तीन-चरणीय प्रक्रिया।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं mysql में किसी तालिका की विदेशी कुंजी कैसे प्राप्त कर सकता हूं?

  2. कैरेक्टर एन्कोडिंग समस्या

  3. #1222 - इस्तेमाल किए गए सेलेक्ट स्टेटमेंट में कॉलम की संख्या अलग-अलग होती है

  4. लिब्रे ऑफिस बेस से टेबल प्रविष्टियों को संशोधित करना संभव है?

  5. मेरी SQL डायनेमिक क्वेरी निष्पादित होती है और संग्रहीत कार्यविधि में एक चर में आउटपुट प्राप्त करती है