一个查询获取所有数据与300个特定查询

时间:2015-10-07 14:40:58

标签: c# mysql

首先,我知道有类似的问题,但我似乎无法找到适合我的情况。

我有一个程序,通过查看我们的数据库,在大约300个产品的CSV文件中更新库存。

数据库有+/- 100k记录。目前我正在选择数据库中的所有记录,只使用我需要的记录。但是我选择了99k的记录太多了。

我也可以为产品做特定的选择,但我担心在几秒钟内发送300个查询(将来可能会变得更多)会太多。

或另一个(可能是愚蠢的)选项:

select * from database where id=product1 || id=product2 
    || id=product3 ||     id=product4,...

在这种情况下,更好的选择是什么?我并不担心执行时间,在这种情况下,我宁愿拥有比快速代码更干净,更“高效”的代码。

2 个答案:

答案 0 :(得分:3)

您可以尝试这样:

select *
from database where id IN (1, 2, 3)

如果要搜索的值的计数大于未计数的计数,则执行反向

select *
from database where id NOT IN (some values)

答案 1 :(得分:1)

你可以这样做:

select *
from database
where id IN (1, 2, 3)

您想要获取的所有ID都可以进入该数组,因此您不必使用长列表或子句。