【问题标题】:MySQL- How to select rows which matches any value from an arrayMySQL-如何选择与数组中的任何值匹配的行
【发布时间】:2023-01-21 00:14:20
【问题描述】:

如何从表中选择行,其条件可以匹配数组中的任何值。

是这样的:

Select * from Table Where Name = Array_of_Names;

Array_of_Names 是一个 java 数组。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您可以在查询中使用 IN 关键字传递它,多个项目由括号中的 comma 分隔,例如:

    String query = "Select * from Table Where Name IN (";
    
    for(int i =0 ;i<arrayName.length();i++){
      query = query + "'" +arrayName(i) + "'" + ",";
    }
    
    query = query.substring(0, query.length()-1);
    query = query + ")";
    
    // execute your query here
    

    这将传递您的查询,例如:

    Select * from Table Where Name IN ('arrayvalue1','arrayvalue2','arrayvalue3');
    

    根据数组的长度。

    【讨论】:

      【解决方案2】:

      您需要制作 SQL 语句并使用 WHERE ... IN ...

      SELECT column_name(s)
      FROM table_name
      WHERE column_name IN (value1,value2,...);
      

      【讨论】:

      • 我认为 OP 想要一个通用数组的解决方案。
      • 虽然这里的数组是固定的,但您可以将数组作为变量传递,而不是使其更具动态性。
      【解决方案3】:

      给你:

      Select * from Table Where Name in ("Tom", "Dick", "Harry");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-26
        • 2019-01-17
        • 1970-01-01
        • 1970-01-01
        • 2021-06-20
        • 1970-01-01
        • 2015-05-23
        相关资源
        最近更新 更多