SQL:可以在where子句中使用输入数组吗?

时间:2012-11-16 21:39:19

标签: sql

  

可能重复:
  Parameterizing an SQL IN clause?

假设我有一个学校表,其中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]

作为一种更清晰的写作方式?

2 个答案:

答案 0 :(得分:6)

是的,这是IN的用途:

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

答案 1 :(得分:2)

您可以使用IN(...)子句:

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

在传递数组方面,它取决于您用来生成SQL的编程语言。

您必须编写一个循环遍历数组的自定义函数,动态生成IN子句