导出数据逃避新行无法正常工作

时间:2011-12-05 04:45:23

标签: mysql csv escaping export

我需要将数据从mysql表导出到csv文件。特别是两个领域给我带来了麻烦。他们的数据类型是varchar和TEXT。

这些列中的数据包含各种粗字符,特别是新行(\ n)和制表符(\ t)。我需要将它们导出到.csv文件中进行迁移。

不幸的是,我无法用'“'括起字段,因为目标数据库不支持该格式。

所以,我的查询如下所示:

SELECT `varchar_col`,`text_col` FROM `db`.`tbl`   INTO OUTFILE '/path/to/my/file.csv' FIELDS TERMINATED BY '\t' ESCAPED BY "\\" LINES TERMINATED BY '\n';

当我查看我的输出文件(使用gedit和nano)时,我只看到文件中的每个新行或制表符都以反斜杠开头(参见下面的示例)。我想要一个新的行或制表符来读取文字字符'\ n'或'\ t'而不是实际的新行和制表符。

新行问题示例 -

字段值:

value one
value two

导出到.csv给了我:

value one\
value two\

而不是:

value 1\nvalue 2

谁能告诉我我做错了什么?

由于

1 个答案:

答案 0 :(得分:0)

我不太确定。但这是你想要的吗? (输出文字字符'\ n'或'\ t'而不是实际的新行和标签。)

SELECT * FROM block INTO OUTFILE '/var/tmp/d.csv' FIELDS TERMINATED BY '\\t' ESCAPED BY "\\" LINES TERMINATED BY '\\n';