1. 程式人生 > >通過命令將sql查詢的結果匯出到具體檔案

通過命令將sql查詢的結果匯出到具體檔案

有時候我們需要將一些查詢結果匯出到具體檔案中然後對結果進行處理。

但是在mysql命令列中不支援直接將檔案匯出。

查詢資料發現mysql提供一種命令可以實現直接匯出資料到檔案,

mysql -uroot -proot test -e "select * from demo" > test_demo.txt

-e後面跟sql查詢語句

箭頭重定向到制定資料夾(linux)

得到的資料結構如下:

id	name	desc
1	asb		test
2	abc		test
3	ade		test

這種格式的資料可以直接複製到excel。方便我們進行處理

-------更新--------

之前說的是mysql命令列不支援直接匯出,這幾天發現了一個新的方式,可以實現,廢話不多說,直接上程式碼

首先,執行下面這個命令

pager cat > test.txt;

執行完成後會出現下面這行提示:

PAGER set to 'cat > test.txt'

下面執行你要輸出的sql,執行完成,內容就會插入到test.txt裡面
資料結構和之前一致。但是這種方式有一個問題,就是如果你執行多條語句,那麼結果會覆蓋之前的查詢,這裡可以將">"更換為">>"這樣就可以追加的形式寫入

這裡test.txt文件可以不用建立,如果沒有會預設自動新建

------更新2018年2月11日22:44:27------

最近有發現一個新的方式。

直接執行命令:
mysql> select count(1) from table  into outfile '/tmp/test.xls';

Query OK, 31 rows affected (0.00 sec)
在目錄/tmp/下會產生檔案test.xls
遇到的問題:
mysql> select count(1) from table   into outfile '/tmp/test.xls';
mysql需要有在/tmp/下寫的許可權 
outfile後面的檔案路徑要使用絕對路徑,相對路徑不能生成對應的檔案。