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

 

參考:https://www.cnblogs.com/wuhongkuan/p/4704299.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM