SQL функция Replace — синтаксис и применение

Всем привет. Один из самых интересных и полезных SQL запросов это Replace. Точнее, это даже функция, а не запрос, позволяющая изменить нужные значения в таблице сразу в десятках мест.

Перед тем, что писать SQL запросы и менять что-то в базе, настоятельно рекомендую сделать ее бэкап, потому что мало ли, что-то не так написали данные в базе могут повредиться.

Синтаксис функции

Replace это функция замены, поэтому очевидно, что она используется в UPDATE запросах, когда нужно обновить, заменить какие-то данные в базе данных. Синтаксис такой:

UPDATE `название таблицы, в которой будем что-то заменять` SET `название поля` = REPLACE (название поля, 'что ищем и заменяем','на что заменяем');

Давайте посмотрим, как это выглядит на практике.

Применение replace — 3 примера

Пример — вам нужно добавить ко всем изображениям на сайте новый класс — image. Конечно, если у вас более 100 картинок, но ни о какой ручной замене не может быть и речи.

Самый простой вариант заменить все, воспользоваться функцией replace, особенно если код ваших изображений однотипный. К примеру, все коды изображений начинаются с такой строчки:

<img class = "img custom"

Тогда добавить новый класс не составит труда. Предположим, страницы вашего сайта лежат в таблице articles, а в этой таблице, в свою очереди, тексты и картинки лежат в поле fulltext. В таком случае запрос будет выглядеть так:

UPDATE `articles` SET `fulltext` = REPLACE (fulltext, '<img class = "img custom"','<img class = "img custom image"');

Вот так просто за несколько секунд можно добавить всем новым изображениям новый класс. Скрипт будет искать во всех статьях на сайте такой кусок

<img class = "img custom"

И если он найдет его, тут же будет произведена на

<img class = "img custom image"

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

Очень важно исходное и заменяемое значения указывать в кавычках, без этого запрос работать не будет!

Рассмотрим другой пример. Допустим, у вас есть на сайте 100 блоков, которые обернуты в блок

<div class = "codediv">

, а вы хотите поменять обертку на

<div class = "code">

. Сделать это с помощью sql функции replace можно за считанные секунды

UPDATE `dcmisha_posts` SET `post_content` = REPLACE (post_content, '<div class = "codediv">','<div class = "code">');

Переход на https

Как вы наверняка знаете, для корректного перехода на https протокол необходимо полностью заменить все ссылки на сайте с http на https. Для этого как раз и применяется запрос replace. Посмотрите, как быстро можно заменить ссылки к картинкам с помощью этой функции:

UPDATE `wp_posts` SET `post_content` = REPLACE(post_content, 'http://dolinacoda.ru', 'https://dolinacoda.ru')

Выводы

Функция Replace позволит вам сделать быструю замену однотипных данных в сотнях и тысячах страниц на вашем сайте, потратив на это до 1 минуты.

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: