sql >> Database teknologi >  >> RDS >> Mysql

Find og erstat en del af teksten i et felt ved hjælp af MySQL

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> 
 


  1. MySQL ONLY IN() tilsvarende klausul

  2. Sådan konverteres en MySQL-database til UTF-8-kodning

  3. Hvad er et indeks i SQL?

  4. Trigger i SQL