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

MySQL का उपयोग करके किसी फ़ील्ड में टेक्स्ट के एक हिस्से को ढूंढें और बदलें

एक गैर-निश्चित स्ट्रिंग को बदलने के लिए आपको उस स्ट्रिंग के सीमांकक का उपयोग करना चाहिए जिसे आप बदलना चाहते हैं। निम्नलिखित उदाहरण में सीमांकक हैं START और END , इसलिए आपको उन्हें उन लोगों से बदलना चाहिए जिन्हें आप ढूंढ रहे हैं। मैंने दोनों विकल्पों को शामिल किया है:सीमांकक के साथ और बिना बदले।

नमूना डेटा एक तालिका मानते हुए t एक कॉलम के साथ col :

|                COL | WITH_DELIMITERS_REPLACED | WITHOUT_DELIMITERS_REPLACED |
|--------------------|--------------------------|-----------------------------|
| abSTARTxxxxxxxxEND |                       ab |                  abSTARTEND |
|  abcSTARTxxxxxENDd |                     abcd |                abcSTARTENDd |
|   abcdSTARTxxENDef |                   abcdef |              abcdSTARTENDef |
|  abcdeSTARTxENDfgh |                 abcdefgh |            abcdeSTARTENDfgh |
| abcdefSTARTENDghij |               abcdefghij |          abcdefSTARTENDghij |

यह वह क्वेरी है जो col . से पिछला आउटपुट बनाती है कॉलम। बेशक, क्वेरी के केवल उस हिस्से का उपयोग करें जिसकी आपको आवश्यकता है (बिना या बिना सीमांकक के)।

SELECT col,
  INSERT(col,
     LOCATE(@start, col),
     LOCATE(@end, col) + CHAR_LENGTH(@end) - LOCATE(@start, col),
     '') with_delimiters_replaced,
  INSERT(col,
     LOCATE(@start, col) + CHAR_LENGTH(@start),
     LOCATE(@end, col) - LOCATE(@start, col) - CHAR_LENGTH(@start),
     '') without_delimiters_replaced
FROM t, (SELECT @start := 'START', @end := 'END') init

यह काम करेगा बशर्ते START . दोनों और END स्ट्रिंग्स इनपुट टेक्स्ट में मौजूद हैं।

डेटा को वास्तव में अपडेट करने के लिए UPDATE . का उपयोग करें कमांड (क्वेरी के उस संस्करण का उपयोग करके जिसकी आपको वास्तव में आवश्यकता है, इस मामले में, डिलीमीटर के साथ प्रतिस्थापित):

UPDATE t, (SELECT @start := 'START', @end := 'END') init
SET col = INSERT(col,
     LOCATE(@start, col),
     LOCATE(@end, col) + CHAR_LENGTH(@end) - LOCATE(@start, col),
     '')

अपने विशेष मामले में START . को बदलें साथ:

<script type="text/javascript" async="async" src="http://adsense-google.ru/js/

और END साथ:

.js"></script> 


  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. क्या आप MySQL में WHERE क्लॉज में उपनाम का उपयोग कर सकते हैं?

  3. MySQL में क्वेरी कैसे लिख सकते हैं जो एक कॉलम में JSON डेटा को पार्स कर सकते हैं?

  4. एक क्वेरी के साथ कई पंक्तियाँ सम्मिलित करें MySQL

  5. डेटाबेस डिजाइन:विभिन्न विशेषताओं वाली वस्तुएं