8

可能重复:
参数化 SQL IN 子句?

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

作为一种更简洁的写作方式?

4

2 回答 2

10

是的,这IN是为了:

SELECT col1, col2, ..., coln
FROM school_table
WHERE school_name IN ('program_input_1', 'program_input_2', 'program_input_3')
于 2012-11-16T21:40:37.770 回答
2

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

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

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

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

于 2012-11-16T21:43:34.283 回答