sql >> Databasteknik >  >> RDS >> Mysql

MySQL för att ersätta med jokertecken

Uppdatering:MySQL 8.0 har en funktion REGEX_REPLACE() .

Nedan är mitt svar från 2014, som fortfarande gäller för alla versioner av MySQL före 8.0:

REPLACE() har inget stöd för jokertecken, mönster, reguljära uttryck etc. REPLACE() ersätter bara en konstant sträng för en annan konstant sträng.

Du kan prova något komplext, för att välja ut den främre delen av strängen och den bakre delen av strängen:

UPDATE table
SET Configuration = CONCAT(
      SUBSTR(Configuration, 1, LOCATE('<tag>', Configuration)+4),
      NEW_DATA,
      SUBSTR(Configuration, LOCATE('</tag>', Configuration)
    )

Men det här fungerar inte i fall där du har flera förekomster av <tag> .

Du kan behöva hämta raden tillbaka till ett program, utföra strängbyte med ditt favoritspråk och lägga tillbaka raden. Med andra ord, en process i tre steg för varje rad.




  1. Flera infoga/uppdatera uttalanden i utlösaren?

  2. Kan inte redigera/modifiera min php-tabell efter id

  3. Villkorlig delad transformation:Exportera data från SQL Server till Oracle- och MySQL-databaser

  4. MySQL:Beräknad kolumn