Mysql 处理回车换行符

来源:互联网 发布:软件服务行业的利润率 编辑:程序博客网 时间:2024/06/05 12:01

今天遇到一个需求,要从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.CreateTimeFROM pt_note t ORDER BY t.CreateTime DESCLIMIT 0, 1000;

其中CHAR(10)是换行,CHAR(13)是回车,顺序和换行完再回车一样。现在导出来就正常了。

0 0
原创粉丝点击