Ich habe eine Tabelle mit den folgenden Spalten in einer MySQL-Datenbank
[id, url]
Und die URLs sind wie:
http://domain1.com/images/img1.jpg
Ich möchte alle URLs auf eine andere Domain aktualisieren
http://domain2.com/otherfolder/img1.jpg
Behalten Sie den Namen der Datei bei.
Welche Abfrage muss ich ausführen?
Antworten:
quelle
relevante Dokumente: http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_replace
quelle
WHERE
Klausel optimiert die Abfrage so, dass nur die Zeilen mit einer bestimmten URL geändert werden. Logischerweise ist das Ergebnis das gleiche, aber das Hinzufügen vonWHERE
beschleunigt den Vorgang.WHERE
auch sichergestellt, dass Sie nur Teile von Zeichenfolgen ersetzen, die mithttp://etc/etc/
oder beginnen.string_to_be_replaced.
In der angegebenen Antworthttp://domain1.com/images/this/is/a/test
wäre dies beispielsweise betroffen, jedochfoobar/http://domain1.com/images/
nicht.Versuchen Sie es mit der REPLACE-Funktion :
Beachten Sie, dass zwischen Groß- und Kleinschreibung unterschieden wird.
quelle
Sie benötigen die WHERE- Klausel, um NUR die Datensätze zu ersetzen , die der Bedingung in der WHERE-Klausel entsprechen (im Gegensatz zu allen Datensätzen). Sie verwenden das % -Zeichen, um eine Teilzeichenfolge anzugeben: IE
Mittel alle Datensätze, die BEGIN mit
"...//domain1.com/images/"
und etwas AFTER haben (die das ist%
für ...)Ein anderes Beispiel:
was bedeutet, alle Datensätze, die enthält
"http://domain1.com/images/"
in irgendeinem Teil der Zeichenfolge ...
quelle
Versuche dies...
quelle
Zuerst muss überprüft werden
SELECT * FROM
university
WHERE Kursname LIKE '% & amp%'Als nächstes muss aktualisiert werden
UPDATE Universität SET Kursname = REPLACE (Kursname, '& amp', '&') WHERE ID = 1
Ergebnisse: Engineering & Amp Technology => Engineering & Technology
quelle