【问题标题】:SQL: Possible to use input array in where clause? [duplicate]SQL:可以在 where 子句中使用输入数组吗? [复制]
【发布时间】:2012-11-05 15:54:27
【问题描述】:

可能重复:
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]

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

【问题讨论】:

    标签: sql


    【解决方案1】:

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

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

    就传递数组而言,这取决于您用于生成 SQL 的编程语言。

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

    【讨论】:

      【解决方案2】:

      是的,这就是IN 的用途:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        • 2017-07-18
        • 2017-05-07
        • 1970-01-01
        • 1970-01-01
        • 2012-04-28
        相关资源
        最近更新 更多