我需要将数据从 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
谁能告诉我我做错了什么?
谢谢
最佳答案
我不太确定。但这是你想要的吗? (输出文字字符 '\n' 或 '\t' 而不是实际的新行和制表符。)
SELECT * FROM block INTO OUTFILE '/var/tmp/d.csv' FIELDS TERMINATED BY '\\t' ESCAPED BY "\\" LINES TERMINATED BY '\\n';
关于mysql - 导出数据转义换行不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8381125/