J'ai une colonne contenant des urls (id, url) :
http://www.example.com/articles/updates/43
http://www.example.com/articles/updates/866
http://www.example.com/articles/updates/323
http://www.example.com/articles/updates/seo-url
http://www.example.com/articles/updates/4?something=test
J’aimerais changer le mot "updates" ; en "news" ;. Est-il possible de le faire avec un script ?
UPDATE your_table
SET your_field = REPLACE(your_field, 'articles/updates/', 'articles/news/')
WHERE your_field LIKE '%articles/updates/%'
Maintenant, les rangées qui étaient comme
http://www.example.com/articles/updates/43
seront
http://www.example.com/articles/news/43
Oui, MySQL possède une fonction REPLACE() :
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace
Notez que c'est plus facile si vous en faites un alias lorsque vous utilisez SELECT
.
SELECT REPLACE(string_column, 'search', 'replace') as url....
La fonction [replace][1] devrait vous convenir.
REPLACE(str,from_str,to_str)
Renvoie la chaîne str avec toutes les occurrences de la chaîne from_str remplacée par la chaîne to_str. REPLACE()
effectue une correspondance sensible à la casse lors de la recherche de from_str.
[1] : http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace