MySQL 去除字段中的換行和回車符
解決方法:
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', ' ' ) ) = '我愛你';
SET `status` = '1'
WHERE trim( replace( `msg`, '\r\n', ' ' ) ) = '我愛你';
把數據中的回車換行等替換成空格之后再trim掉,就達到目的了,雖然不是特別完美,但是由於沒辦法在用戶錄入的時候控制,所以只能出此下策,好在MySQL內置函數的效率還是很有保證的。
UPDATE `tran`
SET `status` = '1'
WHERE trim( trim(
BOTH '\r\n'
FROM content ) ) = '我愛你'
SET `status` = '1'
WHERE trim( trim(
BOTH '\r\n'
FROM content ) ) = '我愛你'
用了兩個trim,這樣的好處是不會替換內容中間的換行和回車,只會處理頭尾的空格換行回車,相當於php中trim函數的作用了。