1. 程式人生 > >Mysql 處理回車換行符

Mysql 處理回車換行符

今天遇到一個需求,要從Mysql中查詢一部分資料,然後將資料匯出為CSV。這裡使用的工具是SQLyog,很自然的使用工具自帶的匯出功能。


導完後,開啟csv檔案,發現本來1行5列的資料出現了2種異常顯示:

1)有的筆記內容,那一列,變成了多列;

2)有的筆記內容,那一行,變成了多行。

關於這兩種情況,查了下資料,找到原因:

一列變多列,原因是CSV的列切分是依據英文逗號的,而筆記內容這列可能有的記錄是包含一個至多個逗號的,會導致這個列在展示時被分隔;

一行變多行,發現是筆記內容中有了回車換行,匯出來直接被換行了。

所以現在的處理方式是,將這兩種影響展示的字元給處理掉。於是在查詢的SQL中做些處理:

SELECT t.UserId,t.NickName,t.QuestionId,REPLACE(REPLACE(REPLACE(t.Content,',',','),CHAR(13),''),CHAR(10),'') 筆記內容, t.CreateTime
FROM pt_note t 
ORDER BY t.CreateTime DESC
LIMIT 0, 1000;

其中CHAR(10)是換行,CHAR(13)是回車,順序和換行完再回車一樣。現在匯出來就正常了。