2

例如,如果我有

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

4

1 回答 1

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 可以最好地处理超出此复杂性的任何内容。

于 2012-06-13T11:15:50.417 回答