phpMyadmin: suchen und ersetzen

In dem Artikel möchte ich zeigen, wie auch unerfahrene User mittels phpMyAdmin häufig vorkommende Ausdrücke schnell und vergleichsweise leicht in ihrer Datenbank ersetzen können.

Ich wollte gerne einen Teil einer häufig vorkommenden Amazon-URL verändern, welche ich in jedem Artikel eingebaut hatte. Da es sich um über 100 Artikel handelt, wäre die händische Änderung der URL ein nicht zu vertretender Aufwand gewesen. So habe ich mich nach einer Lösung umgeschaut, wie ich die URL direkt in der Datenbank bearbeiten kann.

1. Schritt: Finden des Begriffs

Zunächst einmal ruft ihr Eure Datenbank mit Hilfe von phpMyAdmin auf. In fast allen Fällen stellt der Hoster Eures Webpaketes einen Datenbankzugang über phpMyAdmin zur Verfügung. Falls nicht, wechselt den Hoster 🙂

Mit einem Klick auf „Struktur“ erhaltet ihr einen Überblick über Eure Tabellen. Danach geht ihr auf den Punkt „Suche“, um dort zu ermitteln, wo und wie häufig der Begriff vorkommt, den ihr ersetzen wollt. Dabei setzt ihr Euren Suchbegriff in %….% und wählt „genau diese Zeichenkette“. Weiter unten selektiert Ihr die Tabellen, in denen nach dem Begriff gesucht werden soll. Hier sollten zunächst alle ausgewählt werden.

Wenn ihr den Suchbegriff richtig eingegeben habt, werdet Ihr ein Suchergebnis erhalten, dass ähnlich wie dieses ausschaut. Überlicherweise sollten Treffer in der Tabelle „wp_posts“ zu finden sein. Denn dort sind die Inhalte Eurer Postings gespeichert. In meinem Screenshot werden noch weitere Treffer aufgelistet, die sich durch die Verwendung des Plugins „Broken Link Checker“ ergeben.

Nun wisst Ihr, in welchen Tabellen Eurer Suchbegriff vorkommt. Nun müsst Ihr diese Tabellen aufrufen. In unserem Fall rufen wir die Tabelle „wp_posts“ auf (Hinweis: die Tabelle heißt bei uns „wpwmz_posts“, weil wir irgendwann mal den Tabellen-Präfix vom Standard-Wert „wp_“ zu „wpwmz_“ geändert haben. Dadurch also bitte nicht verwirren lassen.)

Dort suchen wir nach der Spalte, in dem unser Suchbegriff vorkommt. In unserem Fall kommt er ausschließlich in der Spalte „post_content“ vor.

2. Schritt: BackUp der Datenbank anlegen

Nun kennen wir den Tabellennamen und die Spalte, in dem der zu ersetzende Begriff vorkommt. Wir können also an das Ersetzen gehen. Bevor wir dies tun, ziehen wir uns den Ist-Zustand der gesamten MySQL-Datenbank als Backup. Das können wir entweder über den Punkt „Exportieren“ in der horizontalen Navigation erledigen oder über ein Plugin wie z.B. „BackWPUp“. Mit diesem können regelmäßige Updates sowohl des FTP-Verzeichnisses als auch der MySQL-Datenbank erstellt werden.

3. Schritt: Ersetzen des Suchbegriffs

Nachdem wir das Backup angelegt haben, können wir an das Ersetzen des gewünschten Begriffes gehen. Dafür ruft ihr den Punkt „SQL“ in der horizontalen Navigation auf.

Die MySQL-Query für Suchen & Ersetzen lautet:

UPDATE tablename SET field = REPLACE(field, "findstring", "replacestring")

In unserem Fall werden die Parameter „tablename“ mit „wpwmz_posts“ und „field“ mit der Tabellenspalte „post_content“ ersetzt. Für den zu ersetzenden String habe ich einfach mal unterstellt, dass ich die URL von amazon (=findstring) auf ebay.de (=replacestring) umstellen möchte.

Es ergibt sich also

UPDATE wpwmz_posts SET post_content = REPLACE(post_content, "www.amazon.de/", "www.ebay.de/")

Dann bestätigt Ihr diesen Befehl mit „OK“ unten rechts. Das wars!

Wenn die URL vorher http://www.amazon.de/gp/product123456&tag=webmaster-zentrale hieß, heißt sie nun nach dem Ersetzen-Vorgang http://www.ebay.de/gp/product123456&tag=webmaster-zentrale

Nach diesem Muster geht ihr dann alle Tabellenfundorte durch, bis ihr in allen relevanten Tabellen Euren Begriff ersetzt habt.

Veröffentlicht von

Thomas

Thomas beschäftigt sich als Webmaster seit 2006 mit der Erstellung eigener Webseiten. Er nutzt dabei hauptsächlich WordPress.

3 Gedanken zu „phpMyadmin: suchen und ersetzen“

  1. Irgendwie kriege ich das nicht hin.

    Meine Zeile lautet

    UPDATE `wp_postmeta` SET `meta_value` = REPLACE (`meta_value`, „!–more–„, „“) WHERE `meta_key` = ‚laterpay_post_teaser‘

    aber irgendwas stimmt da nicht

    #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‚)‘ at line 1

    Beim Drüberhalten über das rote Dreieck klingt es so, als ob er das REPLACE als neuen Befehl nehmen will.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.