2011-12-14 29 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和該表。