2011-12-14 90 views
0

我有一个庞大的个人数据库(每个人说有1000个人/ 5,000个记录)。我想为每个人编写几个字段(在这个例子中,让我们说经纬度)到一个文本文件(最好用逗号分隔)。如何将MySQL查询的结果写入循环内的文本文件?

的算法是这样的:

foo=select distinct (id) from <table-name>; 
for each id in foo 
{ 
smaller_result= select lat,long from <table-name> where id=$id; 
write smaller_result to a text file with unique name (e.g. id.txt); 
} 

我可以很容易地在PHP代码这件事(我经常使用MySQL的接口,如果我不能直接运行一个命令行SQL查询)。但是,在这种情况下,我需要与合作者分享代码并让他运行它(并且他没有并且无法安装php)。此外,该数据库非常大,不能轻松地在线上传(这将允许我通过网络运行查询)。那么我会如何做到这一点?

a)该算法是否可以写成可以在命令行中执行的sql查询?

b)如果没有,是否可以用python编写,这样我的协作者就可以运行一个.py文件了?

我们都在OSX(Lion)上,可以从我们的shell /终端访问mysql和python。

+0

嗯...最后我检查了狮子船与PHP,所以他应该已经安装它。 – NullRef 2011-12-14 23:08:33

回答

0

您可以使用SELECT ... INTO OUTFILE输出任何选择查询的结果。这将生成一个带有输出的文本文件(在服务器上)。

所以你需要创建一个SELECT查询来生成文件......我认为在你的情况下,它可以很容易地通过子查询来完成,如果没有,你可以创建一个存储过程, foo'结果集并将其附加到临时表,然后使用SELECT ... INTO OUTFILE和该表。