如何将结果集的每一行导出到MySql中自己的文本文件?
只是想知道是否可以将每一行(从特定列)导出到多个文本文件,以便每行输出到单独的.txt文件?
干杯
答案 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;
然后获取行,并将每行写入单独的文件。