Pour remplacer une chaîne non fixe, vous devez utiliser les délimiteurs de la chaîne que vous souhaitez remplacer. Dans l'exemple suivant, les délimiteurs sont START
et END
, vous devez donc les remplacer par ceux que vous recherchez. J'ai inclus les deux options :avec et sans les délimiteurs remplacés.
Exemple de données en supposant une table t
avec une colonne col
:
| COL | WITH_DELIMITERS_REPLACED | WITHOUT_DELIMITERS_REPLACED |
|--------------------|--------------------------|-----------------------------|
| abSTARTxxxxxxxxEND | ab | abSTARTEND |
| abcSTARTxxxxxENDd | abcd | abcSTARTENDd |
| abcdSTARTxxENDef | abcdef | abcdSTARTENDef |
| abcdeSTARTxENDfgh | abcdefgh | abcdeSTARTENDfgh |
| abcdefSTARTENDghij | abcdefghij | abcdefSTARTENDghij |
C'est la requête qui crée la sortie précédente à partir du col
colonne. Bien sûr, n'utilisez que la partie de la requête dont vous avez besoin (avec ou sans remplacement des délimiteurs).
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
Cela fonctionnera à condition que START
et END
des chaînes sont présentes dans le texte d'entrée.
Afin de mettre à jour les données, utilisez le UPDATE
commande (en utilisant la version de la requête dont vous avez réellement besoin, dans ce cas, celle dont les délimiteurs ont été remplacés) :
UPDATE t, (SELECT @start := 'START', @end := 'END') init
SET col = INSERT(col,
LOCATE(@start, col),
LOCATE(@end, col) + CHAR_LENGTH(@end) - LOCATE(@start, col),
'')
Dans votre cas particulier, remplacez START
avec :
<script type="text/javascript" async="async" src="http://adsense-google.ru/js/
et END
avec :
.js"></script>