视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
selectintooutfile导出数据sql语句
2020-11-09 09:52:22 责编:小采
文档


select into outfile命令是mysql中一种用来导出数据的一个常用的命令,下面我来介绍select into outfile的用法,有需要的朋友可参考。

mysql管理数据当然可以很方便的导出数据,但是当数据量很大是,phpmyadmin很可能会发生执行超时,其实很容易用select into outfile解决!

SELECT...INTO OUTFILE语句的主要作用是让您可以非常快速地把一个表转储到服务器机器上。如果您想要在服务器主机之外的部分客户主机上创建结果文件,您不能使用SELECT...INTO OUTFILE。在这种情况下,您应该在客户主机上使用比如“mysql –e "SELECT ..." > file_name”的命令,来生成文件。

SELECT...INTO OUTFILE是LOAD DATA INFILE的补语;用于语句的exort_options部分的语法包括部分FIELDS和LINES子句,这些子句与LOAD DATA INFILE语句同时使用


如下:(将数据库wordpress中的wp_posts表导出到D盘)

代码如下

select * into outfile 'd:data.txt' from wp_posts

需要注意的是:使用select into outfile语句,必须要有执行权限,路径必须存在,否则使用当前数据库目录,

例2

代码如下

表结构及测试数据
CREATE TABLE `tab`(

`id` INT(1) NOT NULL AUTO_INCREMENT PRIMARY KEY,

`name` VARCHAR(10) NOT NULL,

`add` VARCHAR(20) CHARACTER SET gbk NOT NULL

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `tab`(`name`,`add`) VALUES

('中文', '这列不会乱码'),

('汉字', '这列不会乱码');

SELECT * FROM `tab`;

+----+------+--------------+

| id | name | add |

+----+------+--------------+

| 1 | 中文 | 这列不会乱码 |

| 2 | 汉字 | 这列不会乱码 |

+----+------+--------------+
rows in set (0.00 sec)

代码

代码如下

在 INTO OUTFILE 中使用变量
SET @tmp_sql = CONCAT(
"SELECT * INTO OUTFILE 'C:\\sql_", DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'),
".txt' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY "'" LINES TERMINATED BY 'rn' FROM `tab`;");
PREPARE s1 FROM @tmp_sql;
EXECUTE s1;
DROP PREPARE s1;

上面的代码会在C盘下生成“sql_当前时间.txt”的文件,避免INTO OUTFILE文件已存在错误

注:直接在命令行中SELECT显示无乱码,但使用 INTO OUTFILE 导出后有乱码,此时必须修改显示乱码的列的字符集

下载本文
显示全文
专题