Как удалить HTML-тег в столбце SQL - PullRequest
0 голосов
/ 09 января 2019

Я хочу удалить теги h1 и текст между ними из столбца post_content sql.

Я пробовал что-то вроде этого:

DELETE FROM wpbz_posts
WHERE `post_content` like '<h1>%</h1>';

но понятия не имею, как работать с текстом между тегами, потому что каждая строка текста отличается от других.

Любые советы или помощь? Спасибо!

1 Ответ

0 голосов
/ 09 января 2019

Вы можете ОБНОВИТЬ с REGEXP_REPLACE, чтобы убрать теги "h1" и то, что в них

UPDATE wpbz_posts 
SET post_content = REGEXP_REPLACE(post_content,'<h1>.*?</h1>','') 
WHERE post_content LIKE '%</h1>%'

? в .*? делает ленивый поиск, поэтому он совпадает только до первого </h1>, следующего за <h1>.

Тест по дБ <> скрипка здесь

Существует также функция UPDATEXML , но она заменяет только 1 вхождение тега.
И вызовет ошибку «Неверное значение XML», если строка не содержит допустимого XML.

UPDATE wpbz_posts 
SET post_content = UpdateXML(post_content,'//h1[1]','') 
WHERE post_content LIKE '%</h1>%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...