447 Stimmen

Aktualisieren eines Spaltenwerts, Ersetzen eines Teils einer Zeichenkette

Ich habe eine Tabelle mit den folgenden Spalten in einer MySQL-Datenbank

[id, url]

Und die URLs lauten wie folgt:

 http://domain1.example/images/img1.jpg

Ich möchte alle URLs auf eine andere Domäne aktualisieren

 http://domain2.example/otherfolder/img1.jpg

Der Name der Datei bleibt unverändert.

Wie lautet die Abfrage, die ich ausführen muss?

941voto

Dmytro Shevchenko Punkte 31263
UPDATE urls
SET url = REPLACE(url, 'domain1.example/images/', 'domain2.example/otherfolder/')

233voto

Marc B Punkte 347897
UPDATE yourtable
SET url = REPLACE(url, 'http://domain1.example/images/', 'http://domain2.example/otherfolder/')
WHERE url LIKE ('http://domain1.example/images/%');

relevante Dokumente: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_replace

30voto

schellack Punkte 9844

Versuchen Sie, die REPLACE-Funktion :

mysql> SELECT REPLACE('www.example.com', 'w', 'Ww');
        -> 'WwWwWw.example.com'

Beachten Sie dabei die Groß- und Kleinschreibung.

17voto

ManiMaran A Punkte 259

Versuchen Sie dies...

update [table_name] set [field_name] = 
replace([field_name],'[string_to_find]','[string_to_replace]');

10voto

Kenneth Daly Punkte 91

Sie benötigen die WHERE Klausel zu ersetzen NUR die Datensätze, die die Bedingung in der WHERE-Klausel erfüllen (im Gegensatz zu allen Datensätzen). Sie verwenden % Zeichen, um eine Teilzeichenkette anzuzeigen: I.E.

LIKE ('...//example.com/images/%');

bedeutet alle Datensätze, die BEGIN con "...//example.com/images/" und alles NACHHER haben (das ist die % für...)

Ein weiteres Beispiel:

LIKE ('%http://example.com/images/%')

was bedeutet, dass alle Datensätze, die "http://example.com/images/"

in irgendeinem Teil der Zeichenkette...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X