एक गैर-निश्चित स्ट्रिंग को बदलने के लिए आपको उस स्ट्रिंग के सीमांकक का उपयोग करना चाहिए जिसे आप बदलना चाहते हैं। निम्नलिखित उदाहरण में सीमांकक हैं 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>