UPDATE SMS_PROVINCE SET PROVINCENAME = REPLACE(REPLACE(PROVINCENAME, CHAR(10),''), CHAR(13),'');
環(huán)境: RHEL5+MySQL
解決方法:
UPDATE tablename SET field = REPLACE(REPLACE(field, CHAR(10), ”), CHAR(13), ”);
char(10): 換行符
char(13): 回車符
問題產(chǎn)生原因:
2種方法生成excel模式的報表:
1)手動生成
將表中的數(shù)據(jù)導出,生成CSV文件。
用mysqldump 導出數(shù)據(jù)
#mysqldump -u xxx -p --tab=/tmp/ --fields-terminated-by="#" DBName TBName
將會在tmp目錄下生成TBName.txt 文件。
在EXCEL中導入生成的txt文件
2)直接生成csv格式文件
mysqldump -u samu -p -T --fields-terminated-by="," --fields-enclosed-by=""
--lines-terminated-by="\n" --fields-escaped-by="" test Customer
或者:
mysqldump -u samu -p --tab=/tmp/ --fields-terminated-by="," --fields-enclosed-by=""
--lines-terminated-by="\n" --fields-escaped-by="" test Customer
但是,無論上面哪一種方法,如果表的某個列里包含回車符或者換行符,
那么生成的CSV文件或者進行excel導入,都會將原本的1行數(shù)據(jù),拆分成2行。
因為CSV或者excel導入,是按數(shù)據(jù)的行來認定數(shù)據(jù)條數(shù)。
所以,必須在此之前,將字段中的回車符或者換行符,進行替換。