Mysql 處理回車換行符
阿新 • • 發佈:2019-02-03
今天遇到一個需求,要從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)是回車,順序和換行完再回車一樣。現在匯出來就正常了。