2017-10-28 107 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更有效。