Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > replace и like


Автор: nikki4 11.11.2015, 13:30
В коде много записей типа:
Код

<a name="id123"></a>

задача удалить

обычно удаляю так:
Код

UPDATE jc_content set `fulltext` = REPLACE (`fulltext`,'что удалить','');


но тут загвоздка в том, что id разный  - 1, 12, 123, 56, 100500 и т.д.

как удалить все это?
Код

<a name="idцифры"></a>

Автор: Akina 11.11.2015, 14:52
СУБД? 

Автор: nikki4 11.11.2015, 16:18
Цитата(Akina @ 11.11.2015,  14:52)
СУБД?

MySQL 
phpmyadmin

Автор: Akina 12.11.2015, 09:28
Ищите соотв. место (по подстрокам "<a name=" и "></a>") с помощью функции LOCATE(), выделяйте подстроки функциями LEFT() и RIGHT() и собирайте новую строку функцией CONCAT().

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

Автор: nikki4 12.11.2015, 16:49
Спасибо, а вариант с функцией действительно будет проще (надеюсь от этого сайт виснуть не станет)
только как?

Код

$text='<a name="id123"></a>';
echo preg_replace('\<a name="id.*"></a>', '', $text); 

preg_replace(): Delimiter must not be alphanumeric or backslash

Автор: Akina 12.11.2015, 19:13
Цитата(nikki4 @  12.11.2015,  17:49 Найти цитируемый пост)
вариант с функцией действительно будет проще

Вообще-то я имел в виду хранимую функцию MySQL, а отнюдь не таскание информации туда-сюда, чтобы этой фигнёй маялся PHP.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)