2017-10-28 106 views
0

中的150多个不同条件中选择查询我在我的SQL Server数据库中有一个表,其中有超过400000行,我想选择以大约.txt文件中几个名称开头的全名超过150个名称,那么查询将如何在C#中的命令中进行。我可以用这种方式编写它,但它会太长,可能会造成延迟或某种类型的错误!在条款

select * 
from tableName 
where fullName like '%Jack%' 
    or fullName like '%Wathson%' 
    --.... and so on 

回答

1

这是太长的评论。

首先,SQL Server可以处理非常长的查询。我创建了至少150K字符的查询,并且它们的工作没有问题。这个限制比这个要大得多。

其次,你是正确的,一堆like陈述将需要很长时间。有开销like

第三,你的模式不符合你的陈述。如果您想要以特定模式启动的名称,请从模式开头删除通配符。这还带来了额外的好处,即SQL Server可以使用FullName上的常规索引进行匹配。

最后,如果您真的在查看初始字符串,那么您可能需要考虑全文索引(这里是start的一个地方)。这些通常比使用like更有效。