MySQL查询结果导出CSV文件出现列值偏移至下一行问题求助
MySQL导出CSV列错位换行问题修复方案
根因说明
- 表中第3、4列的字段值本身包含
\r(回车符)或\n(换行符),导出时未做特殊处理,字段内的换行被识别为行结束标记,导致内容拆分到下一行 - Windows系统默认行终止符为
\r\n,原SQL设置的\n与系统换行规则不匹配,也可能引发换行识别异常
修复步骤
- 先验证字段是否包含隐藏换行符
执行以下SQL查询,如果有返回结果,即可确认对应字段存在换行符:
SELECT * FROM KSK_Age2 WHERE 列3 REGEXP '[\r\n]' OR 列4 REGEXP '[\r\n]';
- 修改导出SQL,适配特殊字符和系统规则
SELECT 第1列名, 第2列名, -- 清除字段内的换行、回车符 REPLACE(REPLACE(第3列名, '\r', ''), '\n', '') AS 第3列名, REPLACE(REPLACE(第4列名, '\r', ''), '\n', '') AS 第4列名 -- 其余字段按需处理 FROM KSK_Age2 INTO OUTFILE "C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\kskAge.csv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' -- 用双引号包裹字段内容,避免特殊字符破坏CSV结构 ESCAPED BY '"' LINES TERMINATED BY '\r\n'; -- 适配Windows系统行终止符规则
执行修改后的SQL重新导出即可解决列错位问题。
内容的提问来源于stack exchange,提问作者tomovam
相关产品推荐
相关产品推荐

