mysql中數據導出成excel文件語句


代碼如下 復制代碼

mysql>select * from xi_table into outfile ’d:test.xls’;

導出為txt文件:

 代碼如下 復制代碼

select * from xi_table into outfile ’d:test.txt’;


默認使用tab分割字段,記錄使用n分割。可以自定義三個參數。

 代碼如下 復制代碼

SELECT * FROMhx_9enjoy INTO OUTFILE '/tmp/9enjoy_hx.txt' FIELDS TERMINATED BY ',' OPTIONALLYENCLOSED BY '"' LINES TERMINATED BY 'n';

即使用,分割字段,雙引號限定字段內容,n分割記錄。

還可以指定某些條件的記錄輸出:

 代碼如下 復制代碼

SELECT * FROMhx_9enjoy WHERE id < 100 INTO OUTFILE '/tmp/9enjoy_100.txt'

如果打開時excel中出現亂碼我們可以導出時設置編碼為gb2312 在服務器端使用iconv來進行編碼轉換:

 代碼如下 復制代碼

iconv -futf8 -tgb2312 -otest2.xls test.xls


如果linux中可能會碰到mysql into outfile ERROR : Can't create/write to file  錯誤,這種問題就是權限的問題了

解決辦法

 代碼如下 復制代碼
sudo vi /etc/apparmor.d/usr.sbin.mysqld

在里面添加/data的可寫目錄,如下:

 代碼如下 復制代碼
...
/usr/sbin/mysqld {
    ...
    /var/log/mysql/ r,
    /var/log/mysql/* rw,
    /var/run/mysqld/mysqld.pid w,
    /var/run/mysqld/mysqld.sock w,
    /data/* rw,
}

然后重新載入:

 代碼如下 復制代碼
sudo /etc/init.d/apparmor reload/restart

還需要重啟mysql,否則會出些莫名其妙的錯誤,如:
ERROR 1286 (42000) at line 1: Unknown table engine 'InnoDB'


重啟mysql:

 代碼如下 復制代碼

 sudo service mysql stop
 sudo service mysql start


免責聲明!

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



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