For at erstatte en ikke-fast streng skal du bruge afgrænsningerne for den streng, du vil erstatte. I det følgende eksempel er afgrænsningerne START
og END
, så du bør erstatte dem med dem, du leder efter. Jeg har inkluderet begge muligheder:med og uden udskiftning af skilletegn.
Eksempeldata forudsat en tabel t
med en kolonne col
:
| COL | WITH_DELIMITERS_REPLACED | WITHOUT_DELIMITERS_REPLACED |
|--------------------|--------------------------|-----------------------------|
| abSTARTxxxxxxxxEND | ab | abSTARTEND |
| abcSTARTxxxxxENDd | abcd | abcSTARTENDd |
| abcdSTARTxxENDef | abcdef | abcdSTARTENDef |
| abcdeSTARTxENDfgh | abcdefgh | abcdeSTARTENDfgh |
| abcdefSTARTENDghij | abcdefghij | abcdefSTARTENDghij |
Dette er den forespørgsel, der opretter det forrige output fra col
kolonne. Brug selvfølgelig kun den del af forespørgslen, som du har brug for (med eller uden udskiftning af skilletegn).
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
Dette vil fungere forudsat både START
og END
strenge er til stede i inputteksten.
For faktisk at opdatere dataene skal du bruge UPDATE
kommando (ved at bruge den version af forespørgslen, du faktisk har brug for, i dette tilfælde den med afgrænsningstegn erstattet):
UPDATE t, (SELECT @start := 'START', @end := 'END') init
SET col = INSERT(col,
LOCATE(@start, col),
LOCATE(@end, col) + CHAR_LENGTH(@end) - LOCATE(@start, col),
'')
I dit særlige tilfælde skal du erstatte START
med:
<script type="text/javascript" async="async" src="http://adsense-google.ru/js/
og END
med:
.js"></script>