Suchen und ersetzen in MySQL Datenbanken

Wenn man mit Datenbanken arbeitet, dann vermisst man oft Funktionen, die man aus der Arbeit mit anderen Programmen kennt. Eine dieser Funktionen ist „suchen und ersetzen“. Ich zeige euch wie ihr ganz einfach über ein SQL Statement auf einer MySQL Datenbank nach Zeichenketten suchen könnt und diese direkt ersetzt. Weitere hilfreiche Tipps zu MySQL findet man im Buch MySQL – kurz & gut.
mysql-logo

Suchen und ersetzen

Diese Funktion kennt so gut wie jeder der mit einem Computer arbeitet. In Office Programmen kann man damit auf einfache Art und Weise sehr schnell Änderungen durchführen. Auch als Programmierer braucht man diese Funktion sehr oft. Sei es eine schnelle Code Änderung oder beim Vorbereiten eines Datenimports in die Datenbank. Gerade bei großen Datenmengen beziehungsweise bei einer großen Anzahl an Zeilen ist diese Funktion einfach nicht wegzudenken.

Datenbank

Datenbanksysteme sind bekannt dafür, dass man sehr schnell Daten wieder auffinden kann. Jeder der mit Datenbanken arbeitet kenn die Suchfunktion und jeder Programmierer hat zumindest schon das Select SQL Statement gesehen und auch verwendet. Was ist aber mit dem ersetzen? Dafür gibt es in SQL eigentlich nicht wirklich eine Standardfunktion. Das hat den Grund, dass Datenbanken Datenspeicher sind und weniger dafür gedacht sind diese auch zu verändern. Diese Funktion wird üblicherweise von Applikationen bereitgestellt.

Strings ersetzen

Nach ein wenig Recherche habe ich schließlich folgendes Statement gefunden:

Wie funktioniert das? Es wird ein einfaches Update Statement abgesetzt, welches einen Wert neu setzt. Soweit ist alles Standard. Als neuen Wert setzen wir aber das Ergebnis einer Funktion mit Namen Replace. Diese Funktion benötigt drei Parameter. Die zu verwendete Tabellenspalte, den alten Wert als String und den neuen Wert.

Anwendungsbeispiel

Eine Datenbank enthält Links die leider durch eine Änderung der Domain ungültig werden. Um sie weiterhin zu verwenden müssen bei allen Links die Domains ausgetauscht werden. Das geht so:

Alternativ kann man über ein WHERE die Zeilen die von dem Suchen und Ersetzen betroffen sind noch etwas einschränken.

(Visited 1.167 times, 1 visits today)

Das könnte auch interessant sein...

Schreibe einen Kommentar

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