Mysql导出逗号分隔的csv文件
最后更新于:2022-04-01 10:12:21
CleverCode在实际的工作中,经常需要将一些报表,或者日志数据等导出来,如果直接做页面,如果次数也不是很多,需求也不同。所以直接导出csv文件,更加直观。
### 一,导出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的服务器端,因为sql语句都是在服务器端执行了。所以执行完后目标文件会保存在mysql服务器端。into outfile '/tmp/test.csv',一般是mysql服务器是在linux上;into outfile 'E:/test.csv' ,一般是mysql服务器端在windows上。并且目标文件必须有写入权限,而且文件不能存在。
#### 1.4 mysql服务器安装在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 mysql服务器安装在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 无写入权限
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-03-29_56fa2a0b95750.jpg)
2 文件已经存在
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-03-29_56fa2a0bb9233.jpg)
### 版权声明:
1)原创作品,出自"CleverCode的博客",请勿转载,否则追究版权法律责任。
2)原创地址:[http://blog.csdn.net/clevercode/article/details/46965115](http://blog.csdn.net/clevercode/article/details/46965115)。
3)分类地址(Mysql数据库总结):[http://blog.csdn.net/clevercode/article/category/3262205](http://blog.csdn.net/clevercode/article/category/3262205)(博客持续增加,关注请收藏)
4)欢迎大家关注我博客更多的精彩内容:[http://blog.csdn.net/CleverCode](http://blog.csdn.net/CleverCode)。