9

我在 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 中,我导入为逗号分隔的文件,这会导致包含换行符文本的列出现问题。

任何帮助表示赞赏!

4

2 回答 2

5

也许只需将所有内容都用双引号括起来。

SELECT * FROM db.table INTO OUTFILE 'c:/result.txt'  FIELDS TERMINATED BY ',' ESCAPED BY '\\' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
于 2010-12-28T02:09:59.547 回答
3

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' 替换所有换行符,但这可能不是您在输出中想要的。

直流

于 2011-01-04T01:39:28.477 回答