СтатьиРабота с SQL и базами данных

Удаление или замена слова в строке запросом SQL (REPLACE)

При работе над проектом возникла задача: во всех статьях сайта обнаружить и заменить одно строковое значение, на другое. С учетом того, что таких страниц больше пяти сотен, в ручную заниматься этим, совершенно нерационально. Все страницы формируются из статей, размещенных в таблице БД. Следовательно, задача сводится к обработке всех записей таблицы, поиску в них нужного стокового значения и его замены на новое.

Часто для таких задач прибегают к использованию регулярных выражений или делают PHP-скрипт, который обрабатывает каждую строку по отдельности.

Но данную задачу гораздо проще выполнить простым SQL запросом. Для такой ситуации, SQL располагает функцией REPLACE. Эта функция позволяет очень просто удалить или заменить часть текста в строке.

REPLACE("исходная строка", "искомое значение", ["значение для замены"] )

Замена значения в строке запросом SQL

Следовательно, для замены строки значения "10000" во всех строках таблицы на "15000", используем запрос:

UPDATE pages SET content = REPLACE (content, "10000", "15000");

Такой запрос обработает все строки таблицы pages, исправив значение поля content, если оно содержит искомую фразу "10000".

Удаление текста в строке запросом SQL

Для удаления используем подобный запрос, в котором укажем либо пустую строку третьим параметром, либо просто не указывая этот параметр:

UPDATE pages SET content = REPLACE (content, "10000", "");
UPDATE pages SET content = REPLACE (content, "10000");

В результате, в каждой строке таблицы pages, во всех значений поля content будет удалено текстовое значение 10000.

* Подобный механизм можно использовать для очистки или замены тегов, но нужно быть внимательным. Так как здесь идет сравнение строк строго по равенству, то может возникнуть ошибка и теги, содержащие классы или стили удалены не будут.


Комментарии

24.03.2017 16:12 Семен [гость]
Большое спасибо, помог!
Имя:
Текст комментария:
* В комментариях запрещено публиковать рекламные объявления. Сообщения, содержащие ссылки на сторонние ресурсы добавляется в скрытом режиме. Они будут открыты, если не нарушают установленных правил, после проверки.
Защита от спам-роботов (* Обязателельно укажите ответ на простой вопрос ниже.)
Сумма чисел двa плюc тpи? (цифра)