如何通过比较mySQL中的唯一ID来提取多个记录。
我有一个excel文件。
在每条记录上都有36k记录,其中包含唯一ID。
唯一ID是从11493(最小)到258090(最大)的随机数 - 原因是,它是从700k记录的主表中提取的一个阶段。
MySQL中的主表 - Phpmyadmin超过700k的记录
我需要将Unique Id与700k表唯一ID进行比较,并仅获取所有36k记录
在excel文件和表中有一个常见的东西[UNIQUE ID]
我怎样才能做到这一点?
答案 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文件中以逗号分隔。
多数人