Php 如何在mySQL中通过比较唯一id提取多条记录
如何通过比较mySQL中的唯一id来提取多条记录 我有一个excel文件 每个记录上都有36k个唯一id的记录 唯一Id是从11493(最小)到258090(最大)的随机数-原因是,它是在一个阶段从700k记录的主表中提取的 MySQL中的主表-Phpmyadmin超过700k条记录 我需要比较Unique Id和700k表Unique Id,只获取所有36k记录 在excel文件和表格中有一个共同点[唯一ID]Php 如何在mySQL中通过比较唯一id提取多条记录,php,mysql,sql,excel,phpmyadmin,Php,Mysql,Sql,Excel,Phpmyadmin,如何通过比较mySQL中的唯一id来提取多条记录 我有一个excel文件 每个记录上都有36k个唯一id的记录 唯一Id是从11493(最小)到258090(最大)的随机数-原因是,它是在一个阶段从700k记录的主表中提取的 MySQL中的主表-Phpmyadmin超过700k条记录 我需要比较Unique Id和700k表Unique Id,只获取所有36k记录 在excel文件和表格中有一个共同点[唯一ID] 如何实现这一点?最简单的方法是创建一个简单的查询,如下所示: select * f
如何实现这一点?最简单的方法是创建一个简单的查询,如下所示:
select * from TABLENAME where unique_id in (COMMA SEPARATED UNIQUE IDS);
假设您知道如何在excel文件中使它们以逗号分隔
仅此而已您可以将数据加载到临时表中,并将其与实际表连接,以获得所需的记录。这就是你必须要做的 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;
他试图获得36k张唱片。IN子句将无效。@ArvindSridharan解释这两个查询:如果unique\u id没有索引,我的查询将检查700k条记录;如果您仅在unique\u id中创建索引,则检查36k条记录;现在查看您的查询将检查700k*36k条记录。决定哪一个是有效的?IN子句不使用索引。临时表上的高效索引可以加快查询流形。请看@ArvindSridharan我的坏,真的…当你发表评论时,我也这么想,但通过mysql文档挖掘,因此很有帮助。
SELECT at.*
FROM actual_table at
INNER JOIN record_ids ri
ON at.id = ri.id = at.id;