2012-11-16 44 views
3

可能重複:
Parameterizing an SQL IN clause?SQL:可能在where子句中使用輸入數組?

假設我的學校,school_name,school_enrolment

作爲輸入表到我的節目,有人鍵入的學校名單,他們將喜歡看報名。相反,生成一個SQL查詢一樣的:

SELECT * FROM school_table 
WHERE 
school_name = 'program_input_1' or school_name = 'program_input_2' or school_name = 'program_input_3' 

是可能的,或者簡單的做這樣的事情

SELECT * from school_table 
WHERE 
school name in [array of program inputs] 

寫這篇文章更清潔的方式嗎?

回答

5

沒錯,這就是IN是什麼:

SELECT col1, col2, ..., coln 
FROM school_table 
WHERE school_name IN ('program_input_1', 'program_input_2', 'program_input_3') 
1

可以使用IN(...)條款:

WHERE School_name in ('school 1','school 2') 

在傳遞一個數組方面,它取決於你所使用的編程語言生成SQL。

你將不得不編寫一個自定義函數來遍歷數組,動態生成IN子句