首先,我知道有类似的问题,但我似乎无法找到适合我的情况。
我有一个程序,通过查看我们的数据库,在大约300个产品的CSV文件中更新库存。
数据库有+/- 100k记录。目前我正在选择数据库中的所有记录,只使用我需要的记录。但是我选择了99k的记录太多了。
我也可以为产品做特定的选择,但我担心在几秒钟内发送300个查询(将来可能会变得更多)会太多。
或另一个(可能是愚蠢的)选项:
select * from database where id=product1 || id=product2
|| id=product3 || id=product4,...
在这种情况下,更好的选择是什么?我并不担心执行时间,在这种情况下,我宁愿拥有比快速代码更干净,更“高效”的代码。
答案 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都可以进入该数组,因此您不必使用长列表或子句。