Mit dem Befehl MySQL REPLACE beheben Sie Fehler oder tauschen veraltete In­for­ma­tio­nen in einem String aus. Wichtig ist dabei, dass Sie die Groß- und Klein­schrei­bung beachten.

Was ist MySQL REPLACE?

Die Funktion des Befehls MySQL REPLACE lässt sich in einem Satz zu­sam­men­fas­sen: MySQL REPLACE ersetzt alle Vorkommen eines Sub­strings durch einen anderen Substring. Das ist zwar grund­sätz­lich richtig; um diese Aussage aber ein wenig besser zu erklären, lohnt es sich, zunächst den Aufbau von MySQL zu be­trach­ten. Das Da­ten­bank­ma­nage­ment­sys­tem verwendet Tabellen, um Daten zu speichern und bei Bedarf wieder zur Verfügung zu stellen. Diese Daten sind in Form von Strings hin­ter­legt, die in einfache oder doppelte An­füh­rungs­zei­chen gesetzt werden. Nun kann es dabei vorkommen, dass sich ein Schreib­feh­ler ein­schleicht oder eine ge­spei­cher­te In­for­ma­ti­on obsolet wird. Hier kommt MySQL REPLACE ins Spiel.

Statt jedes Vorkommen des über­flüs­si­gen Sub­strings mühselig zu suchen und dabei Gefahr zu laufen, dass eine Variante übersehen wird, erledigt MySQL REPLACE diese Aufgabe für Sie. Der Befehl sucht sämtliche Stellen, an denen der hin­ter­leg­te Substring in einem String vorkommt und ersetzt diesen durch eine neue In­for­ma­ti­on, die Sie de­fi­nie­ren. So können Sie eine veraltete URL aus­tau­schen, Zahlen- oder Buch­sta­ben­dre­her beheben oder andere ver­än­der­te Werte in Ihrer Tabelle auf den neuesten Stand bringen. Das Ergebnis ist eine op­ti­mier­te und ak­tua­li­sier­te Da­ten­samm­lung. Der Befehl MySQL REPLACE ist dabei sehr einfach zu verwenden und bietet nur wenige po­ten­zi­el­le Fall­stri­cke.

Syntax von MySQL REPLACE

Der MySQL Befehl REPLACE besteht aus drei ver­schie­de­nen Pa­ra­me­tern, die durch Kommata getrennt werden. Deren Da­seins­be­rech­ti­gung wird beim Blick auf die Syntax al­ler­dings schnell klar. Diese sieht aus wie folgt:

REPLACE (string, alter_substring, neuer_substring);
bash

Mit dem Parameter „string“ wird die Quell­zei­chen­fol­ge definiert, in der der Austausch durch­ge­führt werden soll. „alter_substring“ be­zeich­net den Substring, der vom System gefunden und aus­ge­tauscht werden soll. Als letzten Parameter benötigt MySQL REPLACE den Substring, der statt­des­sen eingefügt werden soll. Der neue Substring ersetzt den alten überall im vor­ge­ge­be­nen String.

Funk­ti­ons­wei­se von MySQL REPLACE

Um die Funk­ti­ons­wei­se von MySQL REPLACE zu verstehen, bietet sich ein einfaches Beispiel an. Dafür nehmen wir eine Wortreihe und verändern durch den Befehl ganz einfach ihren Sinn. Das sieht so aus:

SELECT REPLACE ("HUND HUHN HERZ", "U", "A");
bash

Wir weisen das System damit an, im String „HUND HUHN HERZ“ den Buch­sta­ben „U“ durch ein „A“ zu ersetzen. Diese Änderung wird überall dort durch­ge­führt, wo das „U“ in der aktuellen Version vorkommt. In diesem Fall wäre die Ausgabe also:

REPLACE ("HUND HUHN HERZ", "U", "A")
HAND HAHN HERZ
bash

MySQL Replace ist case-sensitive

Wichtig ist dabei, dass Sie nicht vergessen, dass MySQL REPLACE die Groß- und Klein­schrei­bung beachtet. In unserem Beispiel oben spielt das noch keine Rolle, im folgenden Fall sehen Sie aber, warum das einen Un­ter­schied machen kann.

SELECT REPLACE ("Fragen", "F", "t");
bash

Die Ausgabe sieht bei diesem Beispiel dann so aus:

REPLACE ("Fragen", "F", "t")
tragen
bash

Das bedeutet aber auch, dass MySQL REPLACE nicht das ge­wünsch­te Ergebnis erzielt, wenn Sie beim Schreiben des Befehls die Groß- und Klein­schrei­bung nicht beachten. Würden Sie im obigen Beispiel als alten Substring ein kleines „f“ einsetzen, könnte der Austausch nicht vor­ge­nom­men werden, da der Buchstabe in dieser Schreib­wei­se nicht im String vorkommt.

MySQL REPLACE mit Zahlen

MySQL REPLACE funk­tio­niert al­ler­dings nicht nur mit Buch­sta­ben, sondern auch mit Zahlen. Die Funk­ti­ons­wei­se ist dabei letztlich identisch. In der folgenden Zah­len­rei­he befindet sich ein of­fen­sicht­li­cher Fehler, den wir mit MySQL REPLACE ganz einfach beheben können:

SELECT REPLACE ("16345", "6", "2");
bash

Die Ausgabe sieht direkt viel besser aus:

REPLACE ("16345", "6", "2")
12345
bash

Ein Beispiel aus der Praxis

Während die Beispiele oben zwar einen Eindruck ver­mit­teln, wie Sie MySQL REPLACE einsetzen können, darüber hinaus aber keinen prak­ti­schen Nutzen haben, zeigt das folgende Beispiel, wie der Befehl Ihre Daten bereinigt. Stellen wir uns dafür vor, dass Sie in einer Kun­den­lis­te einen Buch­sta­ben­dre­her in der Spalte „Stadt“ entdeckt haben. Statt „Berlin“ steht dort min­des­tens einmal „Belrin“. Statt sämtliche Einträge zu löschen, ersetzen Sie die feh­ler­haf­te Stadt durch die richtige Schreib­wei­se. Das funk­tio­niert so:

UPDATE Kundenliste
SET
Stadt = REPLACE (Stadt, "Belrin", "Berlin");
bash

Nun ist die ent­spre­chen­de Spalte wieder korrekt.

Zum Hauptmenü