MySQL: Suchen und ersetzen innerhalb einer Datenbanktabelle

Heute benötigte ich eine einfache und schnelle Möglichkeit, Dinge innerhalb einer MySQL-Datenbanktabelle zu suchen und zu ersetzen. Dabei bin ich auf den MySQL-Befehl REPLACE gestoßen (den ich vorher nie nutzte, da ich alles mit WordPress mache). Falls du also ebenfalls nach einer effektiven Möglichkeit suchst, deine Inhalte zu ersetzen, dann bist du hier richtig.

MySQL: Suchen

Zuerst wollen wir die Inhalte suchen, die in Frage kommen. In unserem Beispiel heißt die Tabelle tabelle_urls. Und wir wollen http:// mit mit https:// ersetzen, welches in der Spalte url liegt. Um die Inhalte vor der letztendlichen Abfrage zu kontrollieren, nutzen wir folgenden MySQL-Query:

SELECT url,
REPLACE(url,'http://','https://') 
FROM `tabelle_urls` 
WHERE url LIKE "%http://%";Code-Sprache: JavaScript (javascript)

Jetzt werden uns die zutreffenden Ergebnisse gezeigt. Wenn du mit der Ausgabe zufrieden bist, geht es direkt weiter mit:

MySQL: Suchen und ersetzen

Jetzt ersetzen wir die Inhalte, nachdem wir geprüft haben, ob wir auch die richtigen Inhalte treffen. Der MySQL-Query dafür sieht dann folgendermaßen aus:

UPDATE `tabelle_urls`
SET url = REPLACE(url ,'http://','https://') 
WHERE url LIKE "%http://%"Code-Sprache: JavaScript (javascript)

Wenn du das direkt im phpMyAdmin erledigst, kannst du die Abfrage auch erst simulieren, bevor du weitermachst. Nach der Simulation werden dir die Anzahl der betroffenen Inhalte aufgelistet, bevor du die Abfrage dann letztendlich startest.

Jetzt müssten deine Einträge alle ersetzt sein. Denke bitte daran, dass wenn du das innerhalb von WordPress nutzt, um bspw. die guid zu verändern, dass du im Anschluss einmal die Permalink-Einstellungen im wp-admin öffnest, damit WordPress sich intern etwas auffrischt.