在mysql中删除所有锚标签及其中的任何内容

时间:2017-09-05 12:17:14

标签: html mysql sql regex tags

我是 SQL 的新手,需要从特定的 MySQL 数据库中删除数百个链接。我找到了一个工作 REGEXP 来查找这些条目,但我无法使用 UPDATE 查询。

MySQL数据库中查找和删除所有锚标记及其内容的最佳方法是什么?

示例:

Some text <a href="some-link.com">more text</a>

非常感谢任何帮助,谢谢!

修改

链接始终是最后一个条目,所以也许您可以找到锚标记的开头然后从那里删除所有内容?不知道怎么做。

2 个答案:

答案 0 :(得分:1)

您可以使用:

UPDATE yourTable SET yourcolumn= REPLACE(yourcolumn, '<yourHtmlTag>', '');

这会改变这个:

------------------
id|yourcolumn
--|---------------
1|1111mytag2222
2|2222mytag3333

To this :
------------------
id|yourcolumn
--|---------------
1|11112222
2|22223333

答案 1 :(得分:0)

某些标签,例如B,I,SPAN,包含您要保留的文字?此外,这些可以嵌套吗?

某些标签,例如BR,P,是“独立的”。

某些标签,例如A,IMG,应该删除内容吗?

你可以在文本中使用多个标签,对吗?

除非您使用REGEXP_REPLACE()运行MariaDB,否则最好在应用程序代码中执行任务。

MySQL示例

对于单次出现... <a ...>...</a> ...并删除开始和结束标记:

  1. SUBSTRING_INDEX()可以找到<
  2. 找到
  3. 之后的第一个>
  4. 执行某种MID()LEFT()来删除行
  5. 使用CONCAT()将剩余的部分放在一起
  6. 重复结尾</a>