微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何以CSV格式输出MySQL查询结果?

如何解决如何以CSV格式输出MySQL查询结果?

http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or- csv-file/

SELECT order_id,product_name,qty
FROM orders
WHERE foo = 'bar'
INTO OUTFILE '/var/lib/MysqL-files/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LInes TERMINATED BY '\n';

使用此命令,列名将不会导出。

还要注意,/var/lib/MysqL-files/orders.csv它将在运行MysqL服务器 上。运行MysqL进程的用户必须具有写入所选目录的权限,否则该命令将失败。

如果要从远程服务器(尤其是托管或虚拟化的计算机,例如Heroku或Amazon RDS)将输出写入本地计算机,则此解决方案不适合。

解决方法

有没有一种简单的方法可以从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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。