检测MySQL中的换行符?

时间:2013-07-23 15:29:27

标签: html mysql sql replace line-breaks

我现在一直在寻找几个小时,但找不到任何有效的东西。

我有多个记录:

<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它没有检测到它。

我该如何解决这个问题?

非常感谢

3 个答案:

答案 0 :(得分:1)

如果可能的话,你可能最好用你选择的语言进行这种替换,这将提供比MySQL更强大的字符串处理能力。也就是说,MySQL在字符串中识别出几种C风格character escapes,包括\r\n;因此,MySQL字符串中的CRLF只是'\r\n'

答案 1 :(得分: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

Regex Replace in MySQL

答案 2 :(得分:0)

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

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

数字的含义可以在ASCII chart

中找到
13 = carriage return
10 = newline