select into outfile
转载语法格式如下:
SELECT [列名] FROM table [WHERE 语句]
INTO OUTFILE '目标文件' [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”。windows的换行号是'\r\n'。
FIELDS和LINES两个子句都是自选的,但是如果两个子句都被指定了,FIELDS必须位于LINES的前面。
实例:
SELECT * FROM employee INTO OUTFILE '/tmp/file1.csv'
FIELDS
TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES
STARTING BY '';
FIELDS必须位于LINES的前面,多个FIELDS子句排列在一起时,后面的FIELDS必须省略;同样,多个LINES子句排列在一起时,后面的LINES也必须省略。
如果在employee表中包含了中文字符,使用上面的语句则会输出乱码。此时,加入CHARACTER SET utf8语句即可解决这一个问题。修改SQL代码如下:
SELECT * FROM employee INTO OUTFILE '/tmp/file2.csv'
CHARACTER SET utf8
FIELDS
TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES
STARTING BY '' ;
使用 SELECT into outfile导出数据的时候出现错误:
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
show variables like '%secure%';
查看 secure-file-priv 参数。
导出的数据必须是这个值的指定路径才可以导出,默认有可能是NULL就代表禁止导出,所以需要设置一下.
secure-file-priv 参数是静态修改的,修改此值必须重启数据库。
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:多源复制开关复制命令和监控
下一篇:xtrabackup 安装
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Oceanbase为啥新入数据select慢
oceanbase运维,it小白,OB数据库
数据库 数据 MySQL Oceanbase -
MySQL SELECT xxx INTO OUTFILE用法
secure_file_priv=''
SELECT INTO OUTFIL secure_file_priv='' -
mysql select into outfile 语法 乱码问题
e school_id=6921 i
mysql 数据库 乱码问题