x__miller_x
@x__miller_x

Как удалить из определенного столбца таблицы строку по шаблону?

Доброго дня!
От чудо-контентов в таблице осталось огромное число лишнего кода в тегах html. Простое я удалил, а вот с такими примерами возникла проблема:
<p>Произвольный текст <a href="произвольная ссылка">произвольный текст</a> произвольный текст</p>

Как удалить кусок
<a href="произвольная ссылка">произвольный текст</a>
из определенного столбца таблицы?
  • Вопрос задан
  • 273 просмотра
Решения вопроса 1
suguby
@suguby
программист, python, django, mysql, git, hg, linux
для поиска таких строк заюзать REGEXP https://dev.mysql.com/doc/refman/5.5/en/regexp.html
для удаления текста - пытаться найти подходящую функцию dev.mysql.com/doc/refman/5.6/en/string-functions.html - и мне кажется этого не сделать...

Всего лучше - написать скрипт на любимом ЯП: выбрать ID строки с заменяемым текстом + сам текст, обработать текст regexp-ами (на python - модуль re), обновить БД по ID.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dk-web
я далеко не авторитетный советчик.. но попробовал на БД - работает)
$q="SELECT id, text(определенный столбец) FROM имятаблицы";

$res=mysql_query($q) or die ("Ошибка БД” ".mysql_error());
     while ($row=mysql_fetch_assoc($res)) {
	$need[$row['id']]=preg_replace('#<a href=(?:.*)>(.+?)</a>#Usi', '', $row['text']);
}

foreach ($need as $key => $value) {
	$q="UPDATE имятаблицы SET text(столбец)='".$value."' WHERE id='".$key."'";
	echo '<br>'.$q;
	mysql_query($q) or die ("Ошибка БД” ".mysql_error());
}

уверен, что гуру могут предложить более современные решения... но этот я проверил - он работает
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы