Space Base Space Base
+7 928 008-80-89
ru
  • en
  • es
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  • Главная
  • Услуги
  • Портфолио
  • Библиотека
  • Контакты
  1. Библиотека
  2. SQL
  3. Удаление или замена слова в строке запросом SQL (REPLACE)
logo

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

28.07.2016

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

Часто для таких задач прибегают к использованию регулярных выражений или делают 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.

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

Другие материалы:

Язык структурированных запросов SQL


Переименование таблицы БД запросом SQL (RENAME TABLE)


Условия отбора в запросе SQL (WHERE)


Написать комментарий

Комментарии

В комментариях запрещено публиковать рекламные материалы. Все сообщения оправляются на модерацию и будут опубликованы, если не нарушают правил сайта после проверки.


коммент.

avatar

Алексей

- 24 марта 2023, 12:32 ↓
Неправильное решение.
Таким способом вы получите вместо «100000» значение «150000». А по заданию требуется менять только значение «10000».
avatar

Антон Сенников

- 30 сентября 2022, 10:49 ↓
Если быть точным, функция работает со строкой или строковым значением. Но данная статья посвящена именно замене слова. А слово является частным случаем текста или строкового значения. Не думаю, что это имеет большое значение.
Но спасибо за замечание, Актан.
avatar

Актан

- 30 сентября 2022, 08:44 ↓
Это не удаление слово. А удаление текста

Разработка сайтов

Корпоративный сайт
Интернет-магазин
Лендинг - одностраничный сайт
Сайт-визитка
Сайт-портфолио

Проектирование

Прототип, UX-дизайн

Дизайн

UI-дизайн
Логотип

+54 911 2801-4950

info@space-base.net
+7 928 008-80-89

Web-сайты для успешного бизнеса

Web-сайты для успешного бизнеса

Главная Услуги Портфолио События Библиотека Контакты
+7 928 008-80-89 Меню
Политика в отношении обработки персональных данных © Copyright 2014 - | Space-Base

Лучшее время начать свой проект - Сейчас!

Выбраны опции:

Отправить сообщение на:

Telegram WhatsApp

Отправляя сообщение, вы даете свое согласие на
обработку песональных данных