1. 程式人生 > >Mysql查詢結果匯出為Excel的幾種方法

Mysql查詢結果匯出為Excel的幾種方法

本想直接轉發,奈何密碼忘記了。原文複製過來吧。

原文地址:https://www.cnblogs.com/qiaoyihang/p/6398673.html

【我使用的是方法二】

本文地址:http://www.cnblogs.com/qiaoyihang/p/6398673.html

具體原文找不到了,此篇是借鑑門戶的一篇文章

方法一:
查詢語句直接輸出
語法格式:

Example:     
select * into outfile '/data/var-3307/catid.xls' from help_cat where 1 order by cat_id desc limit 0,20;

select
* into outfile '匯出檔案存放目錄' from 表面和查詢條件等資訊!

請注意許可權問題,如果實在不行,放在/tmp 目錄下

方法二:
在shell命令列下把Excel以文字方式開啟,然後另存為,在編碼選擇ansi編碼儲存
語法格式

1 2 3 4 Example: echo "select * from db_web.help_cat where 1 order by sort desc limit 0,20" | mysql -h127.0.0.1 -uroot > /data/sort.xls echo 查詢語句 管道 登入mysql連結方式 > 定向輸出檔案

  

方式三:
查詢定向輸出為Excel檔案字尾,然後轉碼
語法格式:

1 2 3 4 Example: mysql db_web -uroot  -e "select * from help_cat where 1 order by type desc limit 0,20" > /data/type.xls mysql連結資訊 資料庫 使用者名稱 密碼 然後執行查詢語句,定向輸出。

  

將檔案下載到本地,開啟如果中文亂碼,因為office預設的是gb2312編碼,伺服器端生成的很有可能是utf-8編碼,這個時候你有兩種選擇:


1、在伺服器端使用iconv來進行編碼轉換

1 iconv -futf8 -tgb2312 -otype1.xls type.xls

如果轉換順利,那麼從server上下載下來就可以使用了。


2、轉換如果不順利,則會提示:

1 iconv: illegal input sequence at position 1841

類似錯誤,如下解決:
      先把type.xls下載下來,這個時候檔案是utf-8編碼的,用excel開啟,亂碼。把type.xls以文字方式開啟,然後另存為,在編碼選擇ANSI編碼儲存。