我正试图找到一种方法来检查数据库中是否已经存在某些ID,如果ID已存在于数据库中,我自然会尝试避免处理它所代表的行
现在我正在进行单一查询以检查ID,但我认为这太贵了,因为如果我检查20个ID,则脚本需要30秒
我知道我可以做一个简单的WHERE id = 1或id = 2或id = 3,但我想知道某些ID已经存在于数据库中且哪些不是
我对交易知之甚少,但也许这可能有用或者其他什么
任何想法都非常感谢!
答案 0 :(得分:1)
取决于您如何确定“ID组”
如果您可以使用查询,则可以使用join或exists子句。
例如
SELECT firstname
from people p
where not exists (select 1 from otherpeople op where op.firstname = p.firstname)
这将选择不在otherpeople表中的所有人
如果您只有一个ID列表,请使用WHERE NOT IN(1,3,4 ...)
答案 1 :(得分:1)
对单个值进行20次查询30秒是很长时间。您是否在ID
字段上创建了索引以加快速度?
此外,如果您在ID字段上创建unique key
,则只需插入所有ID即可。数据库将抛出错误而不插入那些已存在的ID,但您可以忽略这些错误。