RealAdmin.ru

Поиск и замена подстрок на SQL

SQL
Категория: Кодинг
19 июн 2018 г. в 17:50

Нередко в таблице базы данных необходимо произвести поиск и замену подстроки. Для таких действий в языке SQL есть специальная функция «Replace». Рассмотрим на примерах как она работает в MySQL.

Внимание! При массовой обработке данных в базах данных не забывайте предварительно делать резервную копию.

Допустим, у компании поменялось название и требуется его заменить в таблице «table_name» на новое. Для этого выполняем запрос на обновление поля «field_text» с использованием нашей функции.

UPDATE `table_name` SET `field_text` = REPLACE(`field_text`,'АО Газмяс','ООО Газмяс') WHERE `field_text` LIKE '%АО Газмяс%';

В качестве параметров передаём содержимое текущего поля, подстроки для поиска и замены. Секцию «WHERE» можно опустить, но препочтительно чтобы операция «UPDATE» применялась только к тем записям, где предварительно обнаружилась искомая подстрока.

Удаление подстроки из таблицы

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

UPDATE `table_name` SET `field_text` = REPLACE(`field_text`,'АО Газмяс','');

Добавление подстрок к полю

Существую случаи когда в начало или конец поля требуется что-то добавить. Например, новое предложение. В этих случая в SQL используют функцию объединения строк — «Concat».

UPDATE `table_name` SET `field_text` = CONCAT(`field_text`,' THE END!');

Эту же задачу можно решить и спомощью «Replace». При этом появляется возможность добавлять подстроку в начало поля.

UPDATE `table_name` SET `field_text` = REPLACE(`field_text`,`field_text`,'START! ' + `field_text` + ' THE END!');

В примере к каждому полю таблицы в начало добавляется подстрока «START!», а в конец — « THE END!».

Приведённые SQL запросы можно выполнять как на PHP, так и через скрипты администрирования, вроде «phpMyAdmin».

Теги:
SQL
Посмотрите похожее — 2
Комментарии —
    © REALADMIN.RU   2018 г.
    Страница сгенерирована: 0,5851 s | 10 mb.
    На каком уровне Вы играете в шахматы?
    О П Р О С
    Home Question Top