Maatwerk websites: webapplicaties, webshops, content management systems en oplossen website problemen.




MySQL zoek en vervang

Categorie : Blog mrt 1st, 2011

Na het verplaatsen van een WordPress blog naar een andere server op een ander domein, werken de afbeeldingen en links niet meer.. Reden: in de broncode wordt naar de absolute url verwezen in plaats van de relatieve.

Wat te doen?  Alles handmatig aanpassen? Natuurlijk niet!

De oplossing blijkt simpeler dan gedacht. In MySQL zit namelijk ook gewoon een find-and-replace functie. Door in de posts het oude domein te vervangen door de nieuwe is het probleem opgelost.

Via dit sql commando (uit te voeren in bijvoorbeeld phpMyAdmin) is dit heel makkelijk op te lossen:

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://www.oudedomein.com', 'http://www.nieuwedomein.com');

En met 1 klik op de knop is een probleem opgelost wat je anders misschien wel uren had gekost..!

Deze functie werkt natuurlijk ook voor andere problemen waarbij er in een MySQL tabel tekst vervangen moet worden:

UPDATE tabelnaam SET veldnaam = REPLACE(veldnaam, 'te vervangen tekst', 'vervangende tekst');
DEEL :

(5) comments

Verschaeve
4 jaar ago · Beantwoorden

Een late reactie bij het zoeken naar een oplossing. Ik wil het ‘ teken weg uit de naam d’Haene bijvoorbeeld.
Dit: UPDATE `rouwbrief` SET `Naam`= ‘D’ WHERE ‘Naam’ LIKE ‘%D’%’
geeft foutmelding, hoe kan ik het oplossen?

Karel Lankhorst
5 jaar ago · Beantwoorden

Als de te vervangen tekst niet eenduidige is, b.v. ‘eerste tekst’ en ’tweede tekst” moeten allebei ‘nieuwe tekst’ worden. Dan kun je met LIKE ‘%tekst%’ de functie nog wat uitbreiden:

UPDATE tabelnaam
SET veldnaam = ‘nieuwe tekst’
WHERE veldnaam LIKE ‘%tekst%’

Saskia
13 jaar ago · Beantwoorden

Hartelijk bedankt!
Dit is precies wat ik zocht en scheelt me heel veel tijd.

Rogier
14 jaar ago · Beantwoorden

Goed om te horen Steven! Hou deze site in de gaten voor meer handige tips..

Steven
14 jaar ago · Beantwoorden

Precies wat ik nodig had, bedankt!

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *