2012-12-03 64 views
0

每天我都會收到帶有電話號碼的csv文件。我已經構建了一個從csv獲取數據的數組。我需要做的是循環訪問數組並搜索mysql數據庫以查找匹配項。你的一位大師能夠如此善意地指出我朝着正確的方向嗎?循環訪問數組並搜索數據庫中的匹配

回答

2

我會建議創建臨時表,然後將您的號碼加載到此表中,然後只需簡單地選擇&加入您的表。您可以插入程序您的手機(multilple排在一個INSERT或者如果你有訪問服務器外殼,你可以做一些這樣的腳本:

-- you can use TEMPORARY table in one transaction or you can just 
-- make sure that the table exists and flush it before import 

CREATE TABLE IF NOT EXISTS phonenumbers (
    number varchar(10) primary key 
); 

TRUNCATE TABLE phonenumbers; 

LOAD DATA LOCAL INFILE 'numbers.csv' INTO TABLE phonenumbers; 

-- here in script or call it from your program to work with data 
-- also you can add INTO OUTFILE 'output.csv' to export filtered data 
-- into outfile 

SELECT addressbook.* FROM addressbook LEFT JOIN phonenumbers on (addressbook.phone = phonenumbers.number); 
2

如果可以,請使用LOAD DATA將csv導入臨時表格,然後根據您的電話號碼編寫與表格匹配的查詢。

+0

是這樣的代碼效率更高的方式做 – 86Stang

+0

這是一個因爲這隻需要數據庫交互,所以可以更好地進行處理。您不必擔心數組或循環。 – Kermit