Mysql導出逗號分隔的csv文件


     CleverCode在實際的工作中。常常須要將一些報表。或者日志數據等導出來,假設直接做頁面,假設次數也不是非常多,需求也不同。所以直接導出csv文件,更加直觀。

1 導出csv文件

1.1 語句格式

     SELECT [列名] FROM table [WHERE 語句] [order by 語句] [limit 語句]
     INTO OUTFILE '目標文件' [OPTION];

1.2 參數說明

該語句分為兩個部分。

前半部分是一個普通的SELECT語句,通過這個SELECT語句來查詢所須要的數據;后半部分是導出數據的。當中,“目標文件”參數指出將查詢的記錄導出到哪個文件里;“OPTION”參數為可選參數選項。其可能的取值有:

  • fields terminated by '字符串':設置字符串為字段之間的分隔符,能夠為單個或多個字符。默認值是“\t”。
  • fields enclosed by '字符':設置字符來括住字段的值。僅僅能為單個字符。

    默認情況下不使用不論什么符號。

  • fields optionally enclosed by '字符':設置字符來括住CHAR、VARCHAR和TEXT等字符型字段。默認情況下不使用不論什么符號。
  • fields escaped by '字符':設置轉義字符,僅僅能為單個字符。默認值為“\”。
  • lines starting by '字符串':設置每行數據開頭的字符,能夠為單個或多個字符。

    默認情況下不使用不論什么字符。

  • lines terminated by '字符串':設置每行數據結尾的字符,能夠為單個或多個字符。

    默認值是“\n”。

1.3 重要提示

        into outfile ‘目標文件’。目標文件是保存在mysql的server端。由於sql語句都是在server端運行了。

所以運行完后目標文件會保存在mysqlserver端。

into outfile '/tmp/test.csv',通常是mysqlserver是在linux上。into outfile 'E:/test.csv' ,通常是mysqlserver端在windows上。並且目標文件必須有寫入權限,並且文件不能存在。

1.4 mysqlserver安裝在linux舉例

select 
    * 
from proxy_list 
order by id asc 
limit 0,2 
into outfile '/tmp/test.csv'  
fields 
    terminated by ',' 
    optionally enclosed by '"' 
    escaped by '"'  
    lines terminated by '\r\n'; 

1.5 mysqlserver安裝在windows舉例

select 
	uid,
	nation
from system_user
order by uid asc
limit 0,2 
into outfile 'e:/test.csv' 
fields 
	terminated by ',' 
	optionally enclosed by '"' escaped by '"' 
lines 
	terminated by '\r\n'; 


1.6 錯誤舉例

1 無寫入權限


2 文件已經存在



版權聲明:

1)原創作品。出自"CleverCode的博客",請勿轉載,否則追究版權法律責任。
2)原創地址:http://blog.csdn.net/clevercode/article/details/46965115
3)分類地址(Mysql數據庫總結):http://blog.csdn.net/clevercode/article/category/3262205(博客持續添加,關注請收藏)
4)歡迎大家關注我博客很多其它的精彩內容:http://blog.csdn.net/CleverCode





免責聲明!

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



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