0

因此,我使用运行以下查询将表转储到 CSV 文件:

SELECT * INTO OUTFILE 'testout.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
FROM dbname.tblname;

这很好用,但所有字段都被双引号括起来。我想得到它,以便在输出中只有 varchar(即字符串)字段被引号包围。有什么简单的方法可以做到这一点?它可能会以某种方式涉及查询中的类型检查字段,但我对如何处理这个问题一无所知。任何帮助将不胜感激。

4

1 回答 1

2

当您有 OPTIONALLY ENCLOSED BY 时,它应该已经按照您的意愿进行:

如果您指定 OPTIONALLY,则 ENCLOSED BY 字符仅用于包含来自具有字符串数据类型(例如 CHAR、BINARY、TEXT 或 ENUM)的列的值:

1,"a string",100.20
2,"a string containing a , comma",102.20
3,"a string containing a \" quote",102.20
4,"a string containing a \", quote and comma",102.20

您确定不是每列都有 varchar 列吗?

于 2011-10-21T18:01:01.917 回答