• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Mysql Replace Statement

R

rico2009

Guest
Hi,

ich muss über MySQL ein Replace Statement mit Hilfe eines RegEx aufstellen. Nun kennt MySQL ja leider nur sehr beschränkt Reguläre Ausdrücke. Hat jemand eine Idee, wie ich sowas am besten löse?

Folgendes habe ich versucht und ist (wie erwartet) fehlgeschlagen:
Code:
update taskHistory set history = replace(history, 'taskDetail.php?taskID=(\d+)', '/intern/task/$1/') where history like '%taskDetail.php?taskID=%';


Gruß
 
Zuletzt bearbeitet:
Also in der MySQL Doku steht nirgends, daß du RegExp in REPLACE() nutzen kannst, da ist nur von Strings die Rede. Für mich sieht das Problem nach der Umkehrung von mod_rewrite aus, da würde ich bereits die korrekten Daten in die DB schreiben.

evtl. könntest du was mit Funktionen/Stored Procedures machen, da du in SQL definitiv Werte zwischenspeichern mußt.
 
Ich weiß, deswegen hatte ich ja gefragt. :)

Das Problem kommt dadurch, dass ich alte Daten auf eine neue Softwarestruktur mappen muss.
 
Mir ist jetzt nichts bekannt, wie man das elegant in SQL löst. Da sich’s wohl um eine einmalige Sache handelt, kann man auch den Umweg über PHP (bzw. die Sprache auf deinem Server) gehen (sofern nicht ständig alte URL neu in die DB kommen). Prepared Statements bieten sich da an.
 
Zurück
Oben