有没有一种简单的方法可以从linux
命令行运行MySQL
查询并以csv格式输出结果?
这是我现在正在做的事情:
mysql -u uid -ppwd -D dbname << EOQ | sed -e 's/ /,/g' | tee
list.csv select id, concat(""",name,""") as name from students EOQ
当有很多列需要用引号括起来时,或者如果结果中有引号需要转义,它会变得混乱。
您可以使用" INTO OUTFILE
"
即
SELECT a,b,c FROM my_table INTO OUTFILE '/ca.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n';
这将创建一个文件"ca.csv",每行之间有一个逗号。还有其他一些选项,例如转义字段值,但这应该足以让您入门。
整件事:
mysql -u uid -ppwd -D dbname -e "SELECT a,b,c FROM my_table INTO OUTFILE '/ca.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY 'n';"
编辑 :- 一个链接供您查看:选择进入
要转义字段,您需要添加FIELDS ESCAPED BY '"'
- 这将添加双引号