在 MySQL 中导出包含换行符的列的表
Posted
技术标签:
【中文标题】在 MySQL 中导出包含换行符的列的表【英文标题】:exporting a table in MySQL with columns that have newline characters 【发布时间】:2011-05-31 09:37:31 【问题描述】:我对 SQL 非常缺乏经验,所以应该有一个简单的解决方案来解决我的问题: 我正在将一个表选择到一个逗号分隔的文件中,并且 TEXT 类型的列有换行符,所以当我尝试将我的 csv 导入 Excel 时,它会在换行符后面的每段文本中创建单独的行。
这是我的查询:
SELECT * FROM `db`.`table` INTO OUTFILE 'c:\\result.txt' FIELDS TERMINATED BY ','
ESCAPED BY '\\' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n' ;
然后在 Excel 中,我导入为逗号分隔的文件,这会导致包含换行符文本的列出现问题。
感谢任何帮助!
【问题讨论】:
【参考方案1】:Novikov 是正确的,但您也可以在导出时转义换行符。
SELECT REPLACE(`fieldname1`,'\n','\\n'),`fieldname2` FROM db.table INTO OUTFILE 'c:/result.txt' FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
然后,这会将所有换行符替换为文本字符串 '\n' 这可能不是您想要的输出。
直流
【讨论】:
【参考方案2】:也许只需将所有内容都用双引号括起来。
SELECT * FROM db.table INTO OUTFILE 'c:/result.txt' FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
【讨论】:
在这种情况下,如果我有一个值为“abc,bcd”的文本字段,则该文本字段将被解析为两个文本字段 abc 和 bcd,因为里面有一个逗号。 引号括起来的字段中的逗号应该被excel忽略。导入 excel 时,请确保将文本限定符设置为“以上是关于在 MySQL 中导出包含换行符的列的表的主要内容,如果未能解决你的问题,请参考以下文章