Можно ли это удалить запросом?

D
На сайте с 28.06.2008
Offline
1114
418

Есть поле в котором записаны ссылки в таком виде

<li><a href="http://www.site1.com" target="_blank">http://site1.com</a></li>
<li><a href="http://site2.com/doc.pdf" target="_blank">http://site2.com/doc.pdf</a></li>
<li><a href="http://www.site5.com" target="_blank">http://site5.com</a></li>
<li><a href="http://site2.com/doc-drugoy.pdf" target="_blank">http://site2.com/doc-drugoy</a></li>

Можно ли запросом удалить все ссылки содержащие http://site2.com ?

[umka]
На сайте с 25.05.2008
Offline
456
#1

Ваш вопрос слишком размытый, чтобы на него можно было дать чёткий ответ.

Лог в помощь!
D
На сайте с 28.06.2008
Offline
1114
#2

Как из примера выше удалить

<li><a href="http://site2.com/doc-drugoy.pdf" target="_blank">http://site2.com/doc-drugoy</a></li>

<li><a href="http://site2.com/doc.pdf" target="_blank">http://site2.com/doc.pdf</a></li>

и вообще все строки содержащие site2.com

[umka]
На сайте с 25.05.2008
Offline
456
#3

Где это всё хранится? Файл? База данных? Какая? Запрос какой? Регулярка? SQL?

D
На сайте с 28.06.2008
Offline
1114
#4

Эти ссылки хранятся в базе в поле fulltext таблицы content

[umka]
На сайте с 25.05.2008
Offline
456
#5

Если это MySQL в чистом виде, то замены по регулярке в ней нет. В MariaDB такое вроде было.

Вероятно, проще будет снять дамп, сделать замену, залить обратно.

R
На сайте с 01.04.2013
Offline
73
#6

UPDATE table SET fulltext = REPLACE(fulltext, 'site.com', '')

Поставляете сами ссылки начиная с li заканчивая li и готово, как один из самых простых вариантов

D
На сайте с 28.06.2008
Offline
1114
#7

У меня MariaDB :))) но мысль понял спс

---------- Добавлено 15.02.2018 в 11:15 ----------

rafonets:
UPDATE table SET fulltext = REPLACE(fulltext, 'site.com', '')

Ваш запрос сделает из

<li><a href="http://site2.com/doc.pdf" target="_blank">http://site2.com/doc.pdf</a></li>

такое

<li><a href="http:///doc.pdf" target="_blank">http:///doc.pdf</a></li>
R
На сайте с 01.04.2013
Offline
73
#8

Я выше добавил, как вариант всю ссылку вставлять. Можно с regexp, но нужно смотреть как данные в базе хранятся, все ссылки, теги, атрибуты однотипные или нет и тд

[umka]
На сайте с 25.05.2008
Offline
456
#9

Тогда как-то так

UPDATE table_name SET field_name=REGEXP_REPLACE(field_name, '(.*)<a href="http://sites2\.com.+?</a>(.*)', '\1\2');

Но сначала дамп :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий