Mysql Massen-String Replace

Ich stolpere immer wieder über die Aufgabe, einen kleinen Teilstring datenbankweit auszutauschen; Zum Beispiel wenn ein WordPress Blog von Domain A auf Domain B umziehen soll, und alle in den Artikeln hart verlinkten URLs automatisch mittels SQL Query geändert werden sollen.

Damit ich nicht jedes Mal auf’s Neue suchen muss lege ich den Lösungsweg hier ab:

Grundsätzlich bietet sich natürlich auch die Möglichkeit, den SQL Dump in einem Texteditor mit „Find and Replace“ durchzupflügen, allerdings kann das bei größeren Projekten schon zu massiven Speicherproblemen führen. Viel schneller und leichter geht das mit der MySQL REPLACE() Funktion von der Hand.

[sql]UPDATE table_name SET column_name = REPLACE(column_name,"original_string","replace_string")[/sql]

Für WordPress würde sich das also wie folgt lesen:

[sql]UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`,"liewcf.com/wp","liewcf.com/blog")[/sql]

Hoffentlich hilft das auch Anderen!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert