MySQL String-Ersetzen mit REPLACE()

Oftmals muss man eindeutig identifizierbare Strings (Zeichenketten, Text) durch einen neuen String ersetzen, die in einer MySQL-Tabellenspalte liegen. Ein harter Weg wäre, alle Werte mit PHP auslesen, in PHP mit str_replace() ersetzen und wieder in die MySQL Datenbank zu schreiben – Gott sei Dank bietet MySQL hier direkt eine REPLACE()-Funktion in den Stringfunktionen an.

In diesem Beispiel werden HTML-Links im Text von WordPress-Artikeln gesucht und durch einen Host im Linkziel ergänzt:

UPDATE wp_posts
SET post_content = REPLACE(post_content, '<a href="/', '<a href="http://www.example.com/');
WHERE post_content LIKE '%<a href="/%'

2 Gedanken zu „MySQL String-Ersetzen mit REPLACE()“

  1. Vielen Dank für den Tipp. Dir ist nach der Replace-Anweisung ein Semikolon reingerutscht, was einen SQL-Fehler hervorruft. Das solltest du mal ändern.

Die Kommentare sind geschlossen.