假设我有一个学校表,其中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]
作为一种更清晰的写作方式?
答案 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子句