![](/img/trans.png)
[英]Why the Select * FROM Table where ID NOT IN ( list of int ids) query is slow in sql server ce?
[英]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.