2

我已经搜索了几个小时,但找不到任何真正有效的东西。

我在多条记录中都有这个:

<p style="text-align: justify;"> SOME TEXT </p>
<p style="text-align: justify;"> MORE TEXT </p>

我想把它改成这样:

<p style="text-align: justify;"> SOME TEXT 
MORE TEXT </p>

我想保留换行符但删除第一个结束标记和第二个开始标记。

我试过这个:

UPDATE my_table SET my_collumn = REPLACE(my_collumn,'</p> <p style="text-align: justify;">','')

但由于它之间的 LINE BREAK,它没有检测到它。

我该如何解决这个问题?

非常感谢

4

3 回答 3

1

如果可能的话,您最好用您选择的语言进行这种替换,这将提供比 MySQL 更强大的字符串处理能力。也就是说,MySQL 可以识别字符串中的几个 C 样式字符转义,包括\r\n; 因此,MySQL 字符串中的 CRLF 只是'\r\n'.

于 2013-07-23T15:38:20.433 回答
1

我建议您不要使用 MySQL 进行字符串操作。这不是数据库的用途。使用 PHP、Perl、ASP,无论您使用什么编码。

您可能遇到的问题:

\r\n您可能必须解析不同的情况,而不是标签之间的常见换行符:

<blankspace>\r\n
\n\n
\n
\r\n<blankspace>\r\n
...

有一天,你可能也想改变

<p style="text-align: justify;">

<p class="textClass">

然后,您需要再次更改 SQL。

如果您真的不想这样做,请查看 UDF,例如

MySQL 中的正则表达式替换

于 2013-07-23T15:41:25.490 回答
0

在 SQL Server 中,您可以使用char(13) + char(10)来包含换行符:

'</p>' + char(13) + char(10) + '<p ...>'

数字的含义可以在ASCII 图表中找到:

13 = carriage return
10 = newline
于 2013-07-23T15:33:01.353 回答