将mySQL数据库行导出为文本文件?

时间:2014-04-29 22:26:14

标签: mysql file text export

如何将结果集的每一行导出到MySql中自己的文本文件?

只是想知道是否可以将每一行(从特定列)导出到多个文本文件,以便每行输出到单独的.txt文件?

干杯

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。但是你需要编写一些代码才能完成它。执行查询,获取每一行,并为每一行打开一个文件句柄,写入文件句柄,然后关闭文件句柄。

如果你想从MySQL中做到这一点,你可以使用SELECT语句的MySQL扩展:

SELECT ... INTO OUTFILE

-OR -

SELECT ... INTO DUMPFILE 

但是你需要为每个"文本文件执行一个单独的语句"你想要制作,并且你想要将查询限制为返回单行。

作为非常效率低的一种方法,对于表中的行数,循环执行:

SELECT * FROM mytable ORDER BY id LIMIT 0,1 INTO OUTFILE 'row_1.txt' ;
SELECT * FROM mytable ORDER BY id LIMIT 1,1 INTO OUTFILE 'row_2.txt' ;
SELECT * FROM mytable ORDER BY id LIMIT 2,1 INTO OUTFILE 'row_3.txt' ;

对于大型套装而言效率非常低。并且,在此过程中,有人可能会插入或删除行,并且您有可能错过"一行和/或得到一个"重复"。

对于大型集,您需要更高效的查询。使用id值列表,您可以遍历这些并执行以下操作:

SELECT * FROM mytable WHERE id = 5 LIMIT 1 INTO OUTFILE 'id_5.txt' ;
SELECT * FROM mytable WHERE id = 7 LIMIT 1 INTO OUTFILE 'id_7.txt' ;
SELECT * FROM mytable WHERE id = 11 LIMIT 1 INTO OUTFILE 'id_11.txt' ;

使用单独的程序,您只能运行一个查询:

SELECT * FROM mytable ORDER BY id;

然后获取行,并将每行写入单独的文件。