2012-12-03 62 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