MySQL查询中的类型检查

MySQL查询中的类型检查,mysql,sql,csv,into-outfile,Mysql,Sql,Csv,Into Outfile,因此,我使用运行以下查询将我的表转储到CSV文件: SELECT * INTO OUTFILE 'testout.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n' FROM dbname.tblname; 这很好,但所有字段都用双引号括起来。我希望在输出中只有varchar(即字符串)字段被引号包围。有什么简单的方法可以做到这一点吗?它可能会以某种方式涉及查询中的类型检查字段,但

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

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

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

如果您有选择地随信附上,则应该已经按照您的意愿执行:

如果指定“可选”,则“由字符括起”仅用于括起具有字符串数据类型(如CHAR、BINARY、TEXT或ENUM)的列中的值:


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

你说得对,谢谢!我把结果和一列列名联合起来,这些列名一定弄乱了基本类型的引号。有没有一种简单的方法可以将列名添加到输出的第一行,这样就不会破坏双引号?我试过了,但仍然产生了原始帖子中描述的问题。这是有道理的,因为我想cols一定是同一类型的。这可能没有简单的办法。
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