MySQL查询到CSV

vin*_*nay 10 mysql sql csv

有没有一种简单的方法从命令行运行MySQL查询linux并以csv格式输出结果?

这就是我现在正在做的事情:

mysql -u uid -ppwd -D dbname << EOQ | sed -e 's/        /,/g' | tee
list.csv select id, concat("\"",name,"\"") as name from students EOQ
Run Code Online (Sandbox Code Playgroud)

当有很多列需​​要用引号括起来,或者结果中有引号需要转义时,它会变得混乱.

Dou*_*oug 11

你可以用" INTO OUTFILE"

SELECT a,b,c FROM my_table INTO OUTFILE '/ca.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; 
Run Code Online (Sandbox Code Playgroud)

这将创建一个文件"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';"

编辑: - 链接供您查看:SELECT INTO

要转义字段,您需要添加FIELDS ESCAPED BY '"'- 这将添加双引号