2015-10-11 88 views
1

我想編寫一個查詢SQL parametrised包含查詢多個選項

Select col1, col2 
from table 
where col1 = 'blah' or 'blah2' or 'blah3' 
    and col2 = 'blah' or 'blah2' or 'blah3' 

我習慣這樣寫他們的一個選項

select 
    col1, col2 
from 
    table 
where 
    col1 = :col1 and col2 = :col2 

Parameters.AddWithValue(":col1", 'blah') 
Parameters.AddWithValue(":col2", 'blah') 

現在我想添加幾個選項或者他們之間,顯然上面的代碼不會工作。 SQL是針對SQLite的。任何人都可以建議我怎麼能做到這一點?對於每個參數,我可能會有超過3個不同的值。我試過尋找,但答案是難以捉摸的。

+1

你可以看看[這個問題,它的答案(http://stackoverflow.com/questions/337704/parameterize-an-sql-in-clause )。它適用於Sql Server,但其中一些答案足夠一般,您可以使用SQLite進行嘗試 – Steve

回答

3

您仍需使用完整表達式,即每次需要編寫col1 =col2 =

替代,使用IN

SELECT ... WHERE col1 IN (:c11, :c12, :c13) AND col2 IN (:c21, :c22, :c23);