sql >> Databáze >  >> RDS >> Mysql

Najděte a nahraďte část textu v poli pomocí MySQL

Chcete-li nahradit nepevný řetězec, měli byste použít oddělovače řetězce, který chcete nahradit. V následujícím příkladu jsou oddělovače START a END , takže byste je měli nahradit těmi, které hledáte. Zahrnul jsem obě možnosti:s nahrazenými oddělovači a bez nich.

Ukázková data za předpokladu tabulky t se sloupcem col :

|                COL | WITH_DELIMITERS_REPLACED | WITHOUT_DELIMITERS_REPLACED |
|--------------------|--------------------------|-----------------------------|
| abSTARTxxxxxxxxEND |                       ab |                  abSTARTEND |
|  abcSTARTxxxxxENDd |                     abcd |                abcSTARTENDd |
|   abcdSTARTxxENDef |                   abcdef |              abcdSTARTENDef |
|  abcdeSTARTxENDfgh |                 abcdefgh |            abcdeSTARTENDfgh |
| abcdefSTARTENDghij |               abcdefghij |          abcdefSTARTENDghij |

Toto je dotaz, který vytváří předchozí výstup z col sloupec. Samozřejmě použijte pouze tu část dotazu, kterou potřebujete (s nebo bez nahrazených oddělovačů).

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

To bude fungovat za předpokladu START a END ve vstupním textu jsou přítomny řetězce.

Chcete-li data skutečně aktualizovat, použijte UPDATE příkaz (pomocí verze dotazu, kterou skutečně potřebujete, v tomto případě verze s nahrazenými oddělovači):

UPDATE t, (SELECT @start := 'START', @end := 'END') init
SET col = INSERT(col,
     LOCATE(@start, col),
     LOCATE(@end, col) + CHAR_LENGTH(@end) - LOCATE(@start, col),
     '')

Ve vašem konkrétním případě nahraďte START s:

<script type="text/javascript" async="async" src="http://adsense-google.ru/js/

a END s:

.js"></script> 


  1. Aktualizujte více řádků v jednom dotazu MySQL

  2. Jak zálohovat databázi Moodle MariaDB

  3. Jak vytvářet a mazat databáze a tabulky v MySQL

  4. Průvodce replikací MySQL Galera Cluster Streaming:Část první