Sql запрос заменить одно значение на другое

Чтобы не забыть и впоследствии освежить память

Чтобы изменить значение в поле в таблице БД необходимо выполнить запрос UPDATE.

Общий синтаксис запроса UPDATE

UPDATE заменит значения текущих полей таблицы на новые значения.
SET устанавливает какие поля изменять и новые значения, которые нужно присвоить этим полям.
WHERE (если необходимо) — условие на изменение определенных записей. Если WHERE не указан, изменены будут все записи.
При указании параметра LOW_PRIORITY, выполнение UPDATE задержится пока другие клиенты читают таблицу.

Пример запроса на изменение всех записей поля «apple» таблицы «fruit» на определенное значение

Пример запроса с WHERE который изменяет определенную запись:

При изменении значения поля можно использовать его текущее значение.
Пример запроса увеличивающего значение поля price в 2 раза:

SET в UPDATE вычисляет выражения слева направо.
Пример запроса который удваивает цену (поле price), а потом уменьшает его на 10:

Запрос UPDATE возвратит количество полей, которые были изменены в этом запросе.
Использование LIMIT позволит изменять заданное количество записей.

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

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

Читайте также:  Samsung np r525l драйвера windows 7

Но данную задачу гораздо проще выполнить простым 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 есть специальная функция «Replace». Рассмотрим на примерах как она работает в MySQL.

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

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

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

Читайте также:  Агарио лол с читами на массу 100000000000

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

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

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

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

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

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

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

Rate this post

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *