所以我用来运行以下查询将我的表转储到CSV文件:
SELECT * INTO OUTFILE 'testout.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"'
LINES TERMINATED BY '\n'
FROM dbname.tblname;
这样可以正常工作,但所有字段都被双引号括起来。我想得到它,以便只有varchar(即字符串)字段被输出中的引号包围。有没有简单的方法来做到这一点?它可能会以某种方式涉及查询中的类型检查字段,但我没有丝毫知道如何处理它。任何帮助将不胜感激。
答案 0 :(得分: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列吗?