利用replace()函数将换行符【char(10)】和回车符【char(13)】替换为空串
创新互联是一家集网站建设,淄博企业网站建设,淄博品牌网站建设,网站定制,淄博网站建设报价,网络营销,网络优化,淄博网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
UPDATE tablename SET field = REPLACE(REPLACE(field,
CHAR(10), ''), CHAR(13), '');
char(10): 换行符
char(13): 回车符
解决方法:
UPDATE tablename SET field = REPLACE(REPLACE(field, CHAR(10), ''), CHAR(13), '');
char(10): 换行符
char(13): 回车符
MySQL的trim函数没办法去掉回车和换行,只能去掉多余的空格,可以用MySQL的replace函数,解决掉这个问题,具体解决办法如下:
假设想要审核数据库中内容为“我爱你
”的短信息(注意内容后有换行)通过(status改变成1)
之前的SQL语句是不起作用的
UPDATE `tran`
SET `status` = '1'
WHERE `msg` = '我爱你';
修改之后的语句
UPDATE `tran`
SET `status` = '1'
WHERE trim( replace( `msg`, '\r\n', ' ' ) ) = '我爱你';
把数据中的回车换行等替换成空格之后再trim掉,就达到目的了,虽然不是特别完美,但是由于没办法在用户录入的时候控制,所以只能出此下策,好在MySQL内置函数的效率还是很有保证的。
UPDATE `tran`
SET `status` = '1'
WHERE trim( trim(
BOTH '\r\n'
FROM content ) ) = '我爱你'
用了两个trim,这样的好处是不会替换内容中间的换行和回车,只会处理头尾的空格换行回车,相当于php中trim函数的作用了。
不知道你那里的 换行符号,
是仅仅 ASCII 码中的 10 , 也就是 换行。 (Unix 系统里,每行结尾只有 “换行 ”)
还是 10 与 13。 也就是 换行 + 回车。 (Windows 系统里面,每行结尾是“换行 回车 ”)
如果仅仅是换行。
UPDATE
gx_video
SET
area = REPLACE ( area , CHAR(10), '' );
如果是 换行+回车
UPDATE
gx_video
SET
area = REPLACE ( area , CHAR(10, 13), '' );
注: CHAR 函数, 就是根据 ASCII 码, 获取字符信息的函数, 下面是一个执行的例子。
mysql select char(77, 10, 78) A, char(79, 10,13,80) B;
+-----+------+
| A | B |
+-----+------+
| M
N | O
P |
+-----+------+
1 row in set (0.00 sec)
REPLACE 函数, 用于 替换掉 指定字符串中的某些字符. 例如:
mysql select replace ('MNOP', char(79), '') C;
+-----+
| C |
+-----+
| MNP |
+-----+
1 row in set (0.00 sec)
新年快乐!
UPDATE tablename SET FIELD = REPLACE(REPLACE(FIELD, CHAR(10), ''), CHAR(13), '');
CHAR(10): 换行符
CHAR(13): 回车符