UPDATE SMS_PROVINCE SET PROVINCENAME = REPLACE(REPLACE(PROVINCENAME, CHAR(10),''), CHAR(13),'');
環境: RHEL5+MySQL
解決方案:
UPDATE tablename SET field = REPLACE(REPLACE(field, CHAR(10), ”), CHAR(13), ”);
char(10): 分行符號
char(13): 斷行符號符
問題產生原因:
2種方法產生excel模式的報表:
1)手動產生
將表中的資料匯出,產生CSV檔案。
用mysqldump 匯出資料
#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行資料,拆分成2行。
因為CSV或者excel匯入,是按資料的行來認定資料條數。
所以,必須在此之前,將欄位中的斷行符號符或者分行符號,進行替換。