Um eine nicht feste Zeichenfolge zu ersetzen, sollten Sie die Trennzeichen der Zeichenfolge verwenden, die Sie ersetzen möchten. Im folgenden Beispiel sind die Trennzeichen START
und END
, also sollten Sie sie durch die ersetzen, nach denen Sie suchen. Ich habe beide Optionen eingefügt:mit und ohne ersetzte Trennzeichen.
Beispieldaten unter der Annahme einer Tabelle t
mit einer Spalte col
:
| COL | WITH_DELIMITERS_REPLACED | WITHOUT_DELIMITERS_REPLACED |
|--------------------|--------------------------|-----------------------------|
| abSTARTxxxxxxxxEND | ab | abSTARTEND |
| abcSTARTxxxxxENDd | abcd | abcSTARTENDd |
| abcdSTARTxxENDef | abcdef | abcdSTARTENDef |
| abcdeSTARTxENDfgh | abcdefgh | abcdeSTARTENDfgh |
| abcdefSTARTENDghij | abcdefghij | abcdefSTARTENDghij |
Dies ist die Abfrage, die die vorherige Ausgabe von col
erstellt Säule. Verwenden Sie natürlich nur den Teil der Abfrage, den Sie benötigen (mit oder ohne ersetzte Trennzeichen).
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
Dies funktioniert, sofern sowohl START
und END
Zeichenfolgen sind im Eingabetext vorhanden.
Um die Daten tatsächlich zu aktualisieren, verwenden Sie dann den UPDATE
Befehl (unter Verwendung der Version der Abfrage, die Sie tatsächlich benötigen, in diesem Fall die mit den ersetzten Trennzeichen):
UPDATE t, (SELECT @start := 'START', @end := 'END') init
SET col = INSERT(col,
LOCATE(@start, col),
LOCATE(@end, col) + CHAR_LENGTH(@end) - LOCATE(@start, col),
'')
Ersetzen Sie in Ihrem speziellen Fall START
mit:
<script type="text/javascript" async="async" src="http://adsense-google.ru/js/
und END
mit:
.js"></script>