Mam tabelę z następującymi kolumnami w bazie danych MySQL
[id, url]
A adresy URL są jak:
http://domain1.com/images/img1.jpg
Chcę zaktualizować wszystkie adresy URL do innej domeny
http://domain2.com/otherfolder/img1.jpg
zachowując nazwę pliku taką, jaka jest.
Jakie zapytanie muszę uruchomić?
Odpowiedzi:
źródło
odpowiednie dokumenty: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_replace
źródło
WHERE
Klauzula optymalizuje zapytanie do modyfikowania tylko wiersze z określonym adresem URL. Logicznie wynik będzie taki sam, ale dodanieWHERE
spowoduje przyspieszenie operacji.WHERE
także zapewnia, że jesteś tylko wymiana części łańcuchów, które rozpoczynają sięhttp://etc/etc/
lubstring_to_be_replaced.
na przykład w danej odpowiedzi,http://domain1.com/images/this/is/a/test
będzie mieć wpływ, alefoobar/http://domain1.com/images/
nie.Spróbuj użyć funkcji WYMIANA :
Pamiętaj, że wielkość liter ma znaczenie.
źródło
Potrzebujesz klauzuli WHERE , aby zastąpić TYLKO rekordy, które spełniają warunek klauzuli WHERE (w przeciwieństwie do wszystkich rekordów). Używasz znaku %, aby wskazać ciąg częściowy: IE
oznacza wszystkie zapisy, z którymi ZACZYNAJĄ
"...//domain1.com/images/"
i mają coś PO (to jest po%
...)Inny przykład:
co oznacza wszystkie rekordy, które zawiera
"http://domain1.com/images/"
w dowolnej części ciągu ...
źródło
Spróbuj tego...
źródło
Najpierw sprawdź
WYBIERZ * Z
university
TAM, GDZIE nazwa kursu podoba się „% & amp%”Następnie musisz zaktualizować
AKTUALIZACJA ZESTAW uniwersytetu nazwa_ kursu = WYMIANA (nazwa_ kursu, „& amp”, „&”) GDZIE id = 1
Wyniki: Inżynieria i technologia wzmacniacza => Inżynieria i technologia
źródło