为了根据ID列表(即不同的主键)查询sqlite表,我使用以下语句(基于
Chinook Database的示例):
SELECT * FROM Customer WHERE CustomerId IN (1,2,3,8,20,35)
但是,我的ID实际列表可能会变得相当大(> 1000).因此,我想知道使用IN语句的这种方法是否最有效,或者是否有更好/优化的方法来基于主键列表查询sqlite表.
最佳答案 如果IN中的元素数量足够大,SQLite会为它们构造一个临时索引.这可能比手动创建
temporary table更有效.
IN列表的长度仅限于maximum length of an SQL statement和内存.