Om een niet-vaste string te vervangen, moet u de scheidingstekens gebruiken van de string die u wilt vervangen. In het volgende voorbeeld zijn de scheidingstekens START
en END
, dus u moet ze vervangen door degene die u zoekt. Ik heb beide opties toegevoegd:met en zonder de scheidingstekens vervangen.
Voorbeeldgegevens uitgaande van een tabel t
met een kolom col
:
| COL | WITH_DELIMITERS_REPLACED | WITHOUT_DELIMITERS_REPLACED |
|--------------------|--------------------------|-----------------------------|
| abSTARTxxxxxxxxEND | ab | abSTARTEND |
| abcSTARTxxxxxENDd | abcd | abcSTARTENDd |
| abcdSTARTxxENDef | abcdef | abcdSTARTENDef |
| abcdeSTARTxENDfgh | abcdefgh | abcdeSTARTENDfgh |
| abcdefSTARTENDghij | abcdefghij | abcdefSTARTENDghij |
Dit is de query die de vorige uitvoer maakt van de col
kolom. Gebruik natuurlijk alleen het deel van de zoekopdracht dat u nodig heeft (met of zonder vervangende scheidingstekens).
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
Dit werkt op voorwaarde dat zowel START
en END
strings zijn aanwezig in de invoertekst.
Om de gegevens daadwerkelijk bij te werken, gebruikt u de UPDATE
commando (gebruik de versie van de query die je echt nodig hebt, in dit geval degene met vervangen scheidingstekens):
UPDATE t, (SELECT @start := 'START', @end := 'END') init
SET col = INSERT(col,
LOCATE(@start, col),
LOCATE(@end, col) + CHAR_LENGTH(@end) - LOCATE(@start, col),
'')
Vervang in uw specifieke geval START
met:
<script type="text/javascript" async="async" src="http://adsense-google.ru/js/
en END
met:
.js"></script>