mysql 导出 sql的执行结果到 csv文件
Posted 一菲聪天
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 导出 sql的执行结果到 csv文件相关的知识,希望对你有一定的参考价值。
需求:
1. 执行某 SQL 的结果;
2. 将结果导出到 csv文件;
3. 通过命令行执行;
mysql -A db_name -h host_name -u user_name -p -ss -e "SELECT * FROM table_name LIMIT 100;" | sed \'s/\\t/","/g;s/^/"/;s/$/"/;s/\\n//g\' > apps.csv
sed 部分内容可以省略 (具体参数我还没弄明白,大意是设定 csv文件的分隔符等)
-A 指定数据库;
-h 指定ip,远程数据库需要,导出本地数据库可以省略;
-u 用户名;
-p 密码;
-ss 指定导出的结果是否包含列名;
-e 后面加执行的 sql 语句 (e -> execute);
简单写法如下:
mysql -A db_name -h host_name -u user_name -p -e "SELECT * FROM table_name LIMIT 100;" > apps.csv
注意:
在假设执行的 sql中包含关键字,在 windows下可以参考 mysql的用法,加上 ``[tab键],如:
SELECT `key` FROM `order`;
但在 linux下就需要对 ``[tab键] 进行转义,使用‘\\’,如下:
SELECT \\`key\\` FROM \\`order\\`;
完整如下:
mysql -A db_name -h host_name -u user_name -p -e "SELECT \\`key\\` FROM \\`order\\` LIMIT 100;" > apps.csv
以上是关于mysql 导出 sql的执行结果到 csv文件的主要内容,如果未能解决你的问题,请参考以下文章
在 SQL Server 2008 中将查询结果导出到 .csv 文件