it-swarm.com.de

str_replace in SQL UPDATE?

Hier ist eine Beispieltabelle:

name       |   picture

John S.    |   http://servera.Host.com/johns.png
Linda B.   |   http://servera.Host.com/lindab.png
...

Nehmen wir an, es gibt mehrere hundert weitere Datensätze.

Nehmen wir auch an, wir haben Server von "servera" nach "serverb" verschoben.

Wäre es möglich, in diese Tabelle mit eine Abfrage zu gehen, um den Inhalt in der Spalte "Bild" für jeden Datensatz umzubenennen, um den korrekten Servernamen zu lesen?

43
Julian H. Lam

T-SQL:

update TBL 
   set picture = Replace(picture, 'servera', 'serverb') 
 where picture like '%servera%'

Orakel:

update TBL 
   set picture = replace(picture, 'servera', 'serverb') 
 where picture like '%servera%'

MySQL:

update TBL 
   set picture = REPLACE(picture, 'servera', 'serverb') 
 where picture like '%servera%'
101
Anatoly G
UPDATE users
SET picture = REPLACE(picture, 'http://servera.Host.com/', 'http://serverb.Host.com/')
WHERE picture LIKE 'http://servera.Host.com/%';

Ich füge mehr von der Zeichenfolge hinzu, weil ich mir Sorgen machen würde, ein Bild mit dem Namen "somethingserverasomething.jpg" zu reparieren. Ich könnte auch darüber nachdenken, eine base_url-Tabelle zu haben und nur Bilddateinamen in Benutzern zu speichern, aber das ist nicht die Frage, die Sie gestellt haben ;-)

18
Andrew