方案有不少種,我這裏簡單說一下:mysql
1 SELECT * FROM mytable 2 INTO OUTFILE '/tmp/mytable.csv' 3 FIELDS TERMINATED BY ',' 4 OPTIONALLY ENCLOSED BY '"' 5 LINES TERMINATED BY '\n';
在我使用過程當中發現一個特別嚴重問題,這裏面不能插入查詢條件,好比where這些,也就是說只能整表導出,不知道是否是個人寫法有問題,有知道朋友請給我留言。sql
第二個問題是,outfile的路徑必定要有寫權限,咱們mysql的進程權限通常是mysql用戶,所以最好導出到/tmp目錄下面。bash
mysql -uroot test -e "select ip from server where a.name like '%abc%'" -N -s | sed -e 's/^/"/g;s/$/"\n/g'; > /tmp/test.csv
這裏首先使用mysql命令的-e參數來執行sql語句,而後經過-N來去掉輸出結果中列名,-s去掉輸出結果中的各類劃線。spa
而後使用sed命令輸出結果中全部相關數據進行替換,其中替換了三處,1.在行首增長「,在行尾增長」和換行,在每一個字段之間增長」,」來分隔。code
mysqldump -u username -p -t -T/path/to/directory dbname table_name --fields-terminated-by=','
和1的方案差很少吧。server
就當是一個筆記吧blog