mysql - 替换存储在数据库中的标签,保持它们之间的字符串

标签 mysql

例如,如果我有

<b>some king of #1 Text</b>

存储在mysql表中,有没有办法把它改成

<h2>some king of #1 Text</h2>

无需转到每一行并手动更改它。?

在某些情况下[如果可能]我需要更换

<p><b>some king of #1 Text</b></p><p>other text</p>

<h2>some king of #1 Text</h2><p>other text</p>

.我在想也许是 sql 表达式。

最佳答案

使用 REPLACE() 函数 if 你的标签看起来像 <b></b>没有其他属性,因为这实际上只是一个简单的字符串替换操作。

UPDATE yourtable SET thecolumn = REPLACE(thecolumn, '<b>', '<h2>');
UPDATE yourtable SET thecolumn = REPLACE(thecolumn, '</b>', '</h2>');

如果您的标签包含其他属性,例如 <b class='something'>您最好在使用 HTML 解析器输出时修改它。

问题编辑后更新:

如果您有精确的模式 <p><b>...</b></p>没有额外的空格,你仍然可以使用 REPLACE() ,但您需要在上面列出的两个之前运行此对。

UPDATE yourtable SET thecolumn = REPLACE(thecolumn, '<p><b>', '<h2>');
UPDATE yourtable SET thecolumn = REPLACE(thecolumn, '</b></p>', '</h2>');

如我之前提到的,任何超出此复杂性的问题都最好通过使用适当的 HTML 解析器修改应用程序代码中的 HTML 来处理。

关于mysql - 替换存储在数据库中的标签,保持它们之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11013645/

相关文章:

mysql - 仅更改配置即可在 JPA 和 MongoDB 之间切换

MySQL:提取折线图的数据以显示一段时间内的计数

mysql - 如何加快MySQL的搜索速度?是否可以使用特殊字符进行全文搜索?

php - 缺少 php 和 mysql 的扩展名

mysql - 如何修复mysql 'Access denied for user ' root'@'localhost'(使用密码: NO)'

mysql - 我的第二个表的按计数(*)排序需要很长时间

mysql - 使用 ALTER TABLE 实现自定义字段

php - 如何在 mysql 和 php 中选择月份?

php - 我现在可以使用带有 PDO 的 MySQL 的真正准备好的语句吗?

mysql - 如何从同一列表中选择包含 ID 而不是仅包含 ID 的记录