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="/%'
Hat wunderbar funktioniert. Vielen Dank.
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.