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的服务器端,因为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 无写入权限
2 文件已经存在
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn