如何通过比较mySQL中的唯一ID来提取多个记录

时间:2014-01-31 05:04:49

标签: php mysql sql excel phpmyadmin

如何通过比较mySQL中的唯一ID来提取多个记录。

我有一个excel文件。

在每条记录上都有36k记录,其中包含唯一ID。

唯一ID是从11493(最小)到258090(最大)的随机数 - 原因是,它是从700k记录的主表中提取的一个阶段。

MySQL中的主表 - Phpmyadmin超过700k的记录

我需要将Unique Id与700k表唯一ID进行比较,并仅获取所有36k记录

在excel文件和表中有一个常见的东西[UNIQUE ID]

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:3)

您可以将数据加载到临时表中,并将其与真实表连接以获取所需的记录。这就是你必须要做的事情

1)创建一个临时表。添加相关索引以加快查询速度。

create temporary table record_ids (int id);

2)将excel文件中的数据(导出为CSV)加载到临时表

LOAD DATA INFILE "<path to your file>"
INTO TABLE record_ids
COLUMNS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

3)通过加入临时表获取所需的记录。

SELECT at.* 
FROM   actual_table at 
       INNER JOIN record_ids ri 
               ON at.id = ri.id = at.id; 

答案 1 :(得分:0)

最简单的方法是创建一个简单的查询:

select * from TABLENAME where unique_id in (COMMA SEPARATED UNIQUE IDS);

假设您知道如何在excel文件中以逗号分隔。

多数人