Suche / Ersetze in MySQL Datenbank
Oliver
- datenbank
Hallo zusammen,
als alter PERL Fan bin ich die Verwendung von Regular Expressions und die Suche/Ersetze Funktionalität gewöhnt und habe sie schätzen gelernt.
Nun möchte ich so etwas im Prinzip auf eine Mysql Syntax übertragen.
Die Aufgabe: Suche innerhalb einer Spalte nach einer RegEx und ersetze dies durch einen anderen Wert.
Bsp. Spalte gid enthält 0103, 0101, 0201
Nun möchte ich alle 01 am Anfang durch 02 ersetzen.
MySQL kann ja RegEx, und die Replace() Funktion ist auch etwas in die Richtung.
update test set gid = replace(gid, '01,'02')
würde allerdings alle Vorkommen von 01 ersetzen und nicht nur die zu Beginn. Der Einsatz von RegEx für den Suchstring führt allerdings zu einem Syntax error.
Ich entschuldige mich für die sehr spezielle Fragestellung, die ein wenig Off-Topic des Forums ist, aber ich hoffe auf das hier anwesende Know-How ;)
Hallo
Bsp. Spalte gid enthält 0103, 0101, 0201
Nun möchte ich alle 01 am Anfang durch 02 ersetzen.MySQL kann ja RegEx, und die Replace() Funktion ist auch etwas in die Richtung.
In diesem Falle nimmt man Teilzeichenketten:
UPDATE test
SET gid = CONCAT('02', SUBSTR(gid, 3))
WHERE SUBSTR(gid, 1, 2) = '01'
update test set gid = replace(gid, '01,'02')
würde allerdings alle Vorkommen von 01 ersetzen und nicht nur die zu Beginn.
Eben.
RegExp in MySQL unterstützen derzeit nach meinem Kenntnisstand _keine_ Ersetzoperationen.
Freundliche Grüße
Vinzenz