我现在一直在寻找几个小时,但找不到任何有效的东西。
我有多个记录:
<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它没有检测到它。
我该如何解决这个问题?
非常感谢
答案 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答案 2 :(得分:0)
在SQL Server中,您可以使用char(13) + char(10)
包含换行符:
'</p>' + char(13) + char(10) + '<p ...>'
数字的含义可以在ASCII chart:
中找到13 = carriage return
10 = newline