Sql e、 为了获得更好的性能,如果不希望重复,请使用UNION ALL。好的,我相信我没有使用索引,我将在启用UNION ALL的情况下尝试,看看它如何在完整查询上运行。我会用我的发现更新这个。非常感谢。是的,我建议您在条形码上创建一个主键,并在组件ID上创建

Sql e、 为了获得更好的性能,如果不希望重复,请使用UNION ALL。好的,我相信我没有使用索引,我将在启用UNION ALL的情况下尝试,看看它如何在完整查询上运行。我会用我的发现更新这个。非常感谢。是的,我建议您在条形码上创建一个主键,并在组件ID上创建,sql,ms-access,Sql,Ms Access,e、 为了获得更好的性能,如果不希望重复,请使用UNION ALL。好的,我相信我没有使用索引,我将在启用UNION ALL的情况下尝试,看看它如何在完整查询上运行。我会用我的发现更新这个。非常感谢。是的,我建议您在条形码上创建一个主键,并在组件ID上创建一个索引。IN不起作用怎么办?如果条形码适用于多个组件ID,那么它只存在于中的另一个组件中。@Blam,问题是该人员正在专门寻找给定的ID和组件相似性。因此,如果需要ID=123,但只有在类似“*ABC”的情况下,如果ID=123且组件为“XY


e、 为了获得更好的性能,如果不希望重复,请使用UNION ALL。好的,我相信我没有使用索引,我将在启用UNION ALL的情况下尝试,看看它如何在完整查询上运行。我会用我的发现更新这个。非常感谢。是的,我建议您在条形码上创建一个主键,并在组件ID上创建一个索引。IN不起作用怎么办?如果条形码适用于多个组件ID,那么它只存在于中的另一个组件中。@Blam,问题是该人员正在专门寻找给定的ID和组件相似性。因此,如果需要ID=123,但只有在类似“*ABC”的情况下,如果ID=123且组件为“XYZ”,则不需要记录。包含123的泛型“IN”子句将是对其所需结果集的错误答案。但请务必先查看条件代码的资格预审以及ID。我仍然认为,面对如此多的可能性,这种方法过于复杂,难以处理。什么?如果他们不希望ID 123包含组件“XYZ”,则不要将123放在in中。您注意到1433700392不在带有*R56的示例中吗?IN当然不会比OR更复杂。@Blam,尽管我部分同意您将IN设置为组件id类型作为一个标准,或将其设置为另一个标准,但请回到他的问题的原始上下文。当你有200多个标准时该怎么办。您可能会阻塞IN()限定符,因为即使这是一个有限的列表容量。您从何处获得具有最大容量的IN?我已经喝了1000多杯了。它比多次或多次使用更有效。我会把美元赌在甜甜圈上,复杂度限制在或的数量上。当然,它减少了查询的大小,并且有一个查询大小限制。
SELECT *
FROM [SPC Data]
WHERE ((([SPC Data].Barcode)=1504803581) AND (([SPC Data].[Component ID]) Like '*R56')) OR 
((([SPC Data].Barcode)=1433700392) AND (([SPC Data].[Component ID]) Like '*C15')) OR 
((([SPC Data].Barcode)=1433700664) AND (([SPC Data].[Component ID]) Like '*R56')) OR 
((([SPC Data].Barcode)=1433700486) AND (([SPC Data].[Component ID]) Like '*R56')) OR
... about 220 more lines of criteria
( [SPC Data].[Component ID] Like '*R56' 
  and [SPC Data].[Barcode] in (1504803581,1433700664,1433700486)  )  or 
( [SPC Data].[Component ID] Like '*C15' 
  and [SPC Data].[Barcode] in (1433700392)  )...
SELECT * FROM [SPC Data]
WHERE [SPC Data].[Barcode]=1504803581 AND [SPC Data].[Component ID] Like '*R56'
UNION 
[SPC Data].[Barcode]=1433700664 AND [SPC Data].[Component ID] Like '*C15'
...
...
create table tmpJoin( tryBarCode  integer, tryComponent varchar(5))

insert into tmpJoin ( tryBarCode, tryComponent ) values ( 1504803581, '*R56' )
insert into tmpJoin ( tryBarCode, tryComponent ) values ( 1433700392, '*C15')
insert into tmpJoin ( tryBarCode, tryComponent ) values ( 1433700664, '*R56')
insert into tmpJoin ( tryBarCode, tryComponent ) values ( 1433700486, '*R56')
etc for as many things as you are looking for...
SELECT 
      sd.*
   FROM 
      [SPC Data] sd
         JOIN tmpJoin 
            on sd.barcode = tmpJoin.tryBarCode
            AND sd.[Component ID] like tmpJoin.tryComponent