替换存储在数据库中的标记,保留它们之间的字符

时间:2012-06-13 11:12:03

标签: mysql mysqli

例如,如果我有

<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表达式。

1 个答案:

答案 0 :(得分:1)

使用REPLACE()函数如果您的代码只看起来像<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来处理。