Поиск и замена слова или части текста в MySQL

в разделе создание сайта. комментарии: 0

Случилось так, что понадобилось мне массово поправить ссылки на картинки во многих сообщениях. Естественно вручную делать не хотелось, да и как-то это старомодно что ли… 🙂
На выручку пришел google со своими умными ссылками. Не будем тянуть кота за хвост, поехали…

Заменить часть текста в строке или целой пачке строк можно всего одним запросом:

1
UPDATE wp_posts SET post_content = REPLACE(post_content, "@ru_lh", " ");
1
UPDATE таблица SET поле = REPLACE(поле, "строка для замены", "чем заменяем");

Вот мой случай:

1
UPDATE bb_posts_text SET post_text = REPLACE(post_text, "/_imgdata/img/", "/assets/external/illustrations/");

Мне нужно заменить часть ссылки /_imgdata/img/ на /assets/external/illustrations/ в колонке post_text в таблице bb_posts_text.
Как положено UPDATE, можно применять дополнительно условия через WHERE, например:

1
UPDATE bb_posts_text SET post_text = REPLACE(post_text, "/_imgdata/img/", "/assets/external/illustrations/") WHERE post_text LIKE "%/_imgdata/img/%";

Это просто, быстро и эффективно… но только на небольших объемах БД, вернее небольшом количестве записей, которые будет обрабатывать запрос.
Успехов! 🙂
Спасибо Gemini_13’s Blog





Комментировать