2011-12-14 15 views
0

私は個人の大きなデータベースを持っています(個人ごとに1000個/ 5,000個)。私は各個人(この例では緯度と経度)をテキストファイル(好ましくはコンマ区切り)に2つのフィールドを書きたいと思います。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); 
} 

私は簡単に(私が直接コマンドラインSQLクエリを実行することができない場合、私は頻繁にMySQLのとのインターフェイスに使用)PHPでこれをコーディングすることができます。しかし、この場合、コードを共同作業者と共有し、彼に実行させる必要があります(彼はPHPをインストールしていないのでインストールできません)。また、データベースはかなり大きく、オンラインで簡単にアップロードすることはできません(これにより、Web経由でクエリを実行できます)。どうすればこれを達成できますか?

a)このアルゴリズムは、コマンドラインで実行できるSQLクエリとして記述できますか?

b)そうでない場合は、私の協力者が.pyファイルを実行するようにPythonで記述できますか?

私たちはどちらもOSX(Lion)上にあり、シェル/ターミナルからmysqlとpythonにアクセスできます。

+0

Hmmm ...最後に、PHPでLionの出荷をチェックしたので、すでにインストールしておくべきです。 – NullRef

答えて

0

SELECT ... INTO OUTFILEを使用して選択クエリの結果を出力できます。これにより、出力(サーバ)のテキストファイルが生成されます。

ファイルを生成する単一のSELECTクエリを作成する必要があります...あなたのケースでは、サブクエリを使用して簡単に行うことができると思います。そうでない場合、カーソルを使用してストアドプロシージャを作成し、 foo '結果セットを作成し、それを一時テーブルに追加して、そのテーブルでSELECT ... INTO OUTFILEを使用します。

関連する問題