繁体   English   中英

查询从表中选择大量ID-SQL

[英]Query select a bulk of IDs from a table - SQL

我有一个表,可容纳约100万行。 我的应用程序有一个属于该表的〜100K ID列表(该列表由应用程序层生成)。

是否存在查询所有这些ID的通用方法? 〜100K选择查询? 我将一个〜100K ID插入到的临时表中,并通过联接所需的表来选择查询?

谢谢,Doori酒吧

这些ID是否实际上引用了具有1M行的表?

如果是这样,则可以使用SELECT * ids FROM <1M table>

其中ids是ID列,而“ 1M table”是包含1M行的表的名称。

但我认为我不太了解您的问题...

您可以在一个查询中完成此操作,例如

SELECT * FROM large_table WHERE id IN (...)

在我放置ID的地方插入逗号分隔的ID列表。不幸的是,我不知道有什么简单的方法可以对此进行参数化,因此您需要格外小心,以避免SQL注入漏洞。

包含100k ID的临时表似乎是一个很好的解决方案。 但是不要一一插入; MySQL中的INSERT ... VALUES语法接受多行插入。

顺便说一句,如果不是从数据库中获得的话,您将在哪里获得10万个ID? 如果它们来自先前的请求,建议将其填入临时表。

编辑:对于多个插入的更便携式的方式:

INSERT INTO mytable (col1, col2) SELECT 'foo', 0 UNION SELECT 'bar', 1 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM