Ersetzen Sie einen Teil der Zeichenfolge in der MySQL-Tabellenspalte
Lesezeit: 1 Minute
Ich habe eine WordPress-Installation und ich habe die MySQL-Datenbank beschädigt. Für Beiträge werden die URLs als „…/wordpress//…“ statt „…/wordpress/…“ aufgeführt.
Wie kann ich in SQL jede Zeile in der Tabelle durchgehen und (vielleicht einen regulären Ausdruck verwenden), um jede Instanz von ‘ss//’ durch ‘ss/’ zu ersetzen?
Eugen Rieck
UPDATE sometable SET somefield=REPLACE(somefield,'/wordpress//','/wordpress/');
Bearbeiten
@Kevin hat mich gebeten, diese Abfrage zu erklären, also los geht’s:
Ich nehme an, das grundsätzliche UPDATE ist klar: In allen Reihen sometable einen neuen Wert zuweisen somefield
das REPLACE() Die Funktion macht genau das, was sie sagt: Sie ersetzt Text. In unserem Anwendungsfall nehmen wir den alten Wert von somefielddann ersetzen Sie alle Vorkommen von ‘/wordpress//’ durch ‘/wordpress/’
diese beiden Teile zusammengenommen bedeuten, in allen Reihen von sometable zuordnen somefield der Wert, der sich ergibt, wenn man im alten Wert alle Vorkommen von ‘/wordpress//’ durch ‘/wordpress/’ ersetzt.
Bitte fügen Sie eine Erklärung hinzu.
– Kevin
24. Oktober 2013 um 20:40 Uhr
@ Kevin Ich war mir ziemlich sicher, das ist selbsterklärend! Wie auch immer, ich werde eine Erklärung hinzufügen.
– Eugen Rieck
24. Oktober 2013 um 20:42 Uhr
Super Funktion und gut erklärt!
– Benjamin
24. März um 12:12 Uhr
13761100cookie-checkErsetzen Sie einen Teil der Zeichenfolge in der MySQL-Tabellenspalteyes