Jeder, der eine MySQL oder MariaDB datenbank verwalten muss, ist schon einmal auf die Notwendigkeit gestoßen, eine Zeichenkette in den Zeilen der Datenbank rekursiv zu ersetzen oder zu löschen. Normalerweise wird so etwas mit Skripten erledigt, die speziell für die Lösung des Problems entwickelt wurden, aber es gibt auch einen viel schnelleren Weg, dies zu tun.
Es ist wichtig, dass Sie, bevor Sie diesen Artikel lesen und anwenden, wissen, was eine Datenbank ist, dass Sie sie in die Hand nehmen können und dass Sie eine Sicherheitskopie erstellen. Bei der Verwendung dieses Systems können leicht Fehler gemacht werden, die verheerende Folgen haben können, weil man vielleicht etwas vergisst oder Platzhalter nicht richtig verwendet.
Dieser Artikel ist als Erinnerung für diejenigen gedacht, die bereits wissen, wie sie mit den entsprechenden Tools und Clients in eine Datenbank eindringen können..
Der betreffende Befehl ist REPLACE und kann in diesem Fall in Verbindung mit dem Befehl UPDATE verwendet werden. Die generische Syntax des Befehls lautet:
USE database_name;
UPDATE table_name set column_name=REPLACE(column_name,'text to search','new text');
Dem Befehl kann auch die Klausel WHERE folgen, mit der die Anzahl der zu durchsuchenden Datensätze auf die tatsächlich benötigte Anzahl begrenzt wird.
Um das Konzept zu verdeutlichen, gebe ich Ihnen im Folgenden ein Beispiel. Nehmen wir an, wir haben versehentlich einen Text, der mit einem Leerzeichen beginnt, in einige Zeilen unserer Datenbank eingefügt. Wenn ich das Leerzeichen am Anfang jeder Zeile, in der es versehentlich eingefügt wurde, entfernen wollte, würde ich schreiben:
UPDATE table_name set column_name=REPLACE(column_name,' ','') WHERE column_name LIKE ' %';
In diesem Fall ist das zu suchende Zeichen das Leerzeichen und muss durch nichts ersetzt werden, d.h. die beiden Hochkommata nebeneinander ohne Leerzeichen. Die WHERE-Klausel in dem Beispiel besagt, dass die Ersetzung nur in Zeilen erfolgen soll, die mit einem Leerzeichen beginnen. Bitte beachten Sie, dass das Prozentzeichen, das als Platzhalter verwendet wird, in diesem Fall nicht auf das erste Anführungszeichen folgt, da wir nicht nach allen Leerzeichen in Zeichenketten suchen, sondern nur nach dem Leerzeichen am Anfang der Zeichenkette.
Wenn Ihnen etwas unklar ist, können Sie es gerne in die Kommentare schreiben, und ich beantworte gerne alle Fragen, die Sie haben. Seid brav und versucht, keine Unordnung zu machen!