由于textarea字段上的编码器编码很差,我在mmy db中有大量的varchar字段(但不是全部..)以新行开头和/或返回" \ r \ n"在文本之前,还包含换行符的文本..
这里可以看到一个例子:http://paraglidingearth.com/?site=14301
我希望我只能删除" \ r \ n"那些是在字段的开头,而不是在文本内部,而不会改变文本本身...
我想在UPDATE mysql查询中需要一些花哨的正则表达式,但我在这里请求帮助,因为我不能自己编写这个过滤器...
感谢您的帮助:)
答案 0 :(得分:2)
如果你想要做的就是从你的字符串中调整前导'\ n'和'\ r \ n',修剪是选择的功能....
set @string:='\r\nHello World';
select @string;
+---------------+
| @string |
+---------------+
|
Hello World |
+---------------+
1 row in set (0.00 sec)
select trim(leading '\n' from trim(leading '\r\n' from @string));
+-----------------------------------------------------------+
| trim(leading '\n' from trim(leading '\r\n' from @string)) |
+-----------------------------------------------------------+
| Hello World |
+-----------------------------------------------------------+
1 row in set (0.00 sec)
set @string:='\nHello World';
select trim(leading '\n' from trim(leading '\r\n' from @string));
+-----------------------------------------------------------+
| trim(leading '\n' from trim(leading '\r\n' from @string)) |
+-----------------------------------------------------------+
| Hello World |
+-----------------------------------------------------------+
1 row in set (0.00 sec)
以下示例显示字符串中嵌入的换行符将被忽略...
set @string:='Hello\n World';
select trim(leading '\n' from trim(leading '\r\n' from @string));
+-----------------------------------------------------------+
| trim(leading '\n' from trim(leading '\r\n' from @string)) |
+-----------------------------------------------------------+
| Hello
World |
+-----------------------------------------------------------+
1 row in set (0.00 sec)
答案 1 :(得分:0)
他们不是\r\n
或\n,
他们是<br>
标记。我检查了您的网站,似乎是<br>
标记
只使用mysql,你应该使用
更新字段时, Mysql REPLACE()
和TRIM()
。
但这些对您的数据来说是危险的操作。首先备份数据库然后使用REPLACE()
,TRIM()
和UPDATE