MySQL UPDATE unter Einbeziehung des aktuellen Feldwertes

Da in einer meiner Projektdatenbanken für Bilder relative Pfade verwendet werden und ich die lokale Version des Projekts in einem Verzeichnis pflege, dessen Name nicht dem der Online-Version entspricht, war es notwendig, alle Pfade in der lokalen Projektdatenbank anzupassen.

Während der Projektpfad online

/projectx/

lautete, hieß er lokal

/domainx/projectx/

Das Anpassungsscript sollte also den aktuellen Feldwert nehmen und davor ein /domainx einfügen.
Leider funktioniert das nicht ähnlich simpel wie mit Zahlen, bei denen der aktuelle Feldwert einfach mit einem mathematischen Operator wie z.B. einem + mit einer Zahl verknüpft werden kann, wie etwa hier:

UPDATE `tablex` SET `fieldx` = `fieldx` + 5

Es muss vielmehr auf die MySQL-Funktion CONCAT zurückgegriffen werden, welche alle Argumente zu einem String verknüpft.
Das sah in meinem Fall dann so aus:

UPDATE `tablex` SET `fieldx` = CONCAT('/domainx', `fieldx`)

Wichtig ist, dass die Argumente für CONCAT richtig angegeben werden: Auf Feldwerte wird mit dem Feldnamen bzw. dem durch gequoteten Feldnamen Bezug genommen, direkte Stringeingaben erfolgen durch einfache Hochkommas.

Geschrieben von Philip am 08.03.2010 und abgelegt unter MySQL. Du kannst den Antworten mit dem RSS 2.0 feed folgen. Du kannst selbst eine Antwort verfassen oder ein Trackback von Deiner eigenen Seite setzen.

Stichwörter:
Teilen:
FacebookTwitterGoogle BookmarksStumbleUponDeliciousShare

Kommentare

Es sind keine Kommentare vorhanden.

Eine Antwort verfassen