你看看可不可以这样:
String sql = "SELECT COUNT FROM Table TOPIC = ? NAME IN (?,?,?,?,?)";pst.setString(1, "'000'");
pst.setString(2, "'100'");
pst.setString(3, "'200'");
pst.setString(4, "'300'");
pst.setString(5, "'500'");
pst.setString(6, "'900'");

解决方案 »

  1.   

    那也行,看来得处理一下了,你觉得用split怎样?
      

  2.   

    String str = "'100','200','300','500','900'";
    String sql = "SELECT COUNT FROM Table TOPIC = ? NAME IN (";看看能不能replaceAll一下把变成"?,?,?,?,?"
    然后
    String sqlstr = sql+str+")";把str给split一下,搞到strtemp[0] = "'100'" ....再搞个循环来
    pst.setString(i, "strtemp[i]");
    呵呵,这样会不会太麻烦了点~
      

  3.   

    不行的
    这条语句
    String sql = "SELECT COUNT FROM Table TOPIC = ? NAME IN (?)";
    在很久以前已经放入
    PreparedStatement    
    "'100','200','300','500','900'"是后来组合的这样设计也很正常拼sql文肯定能解决   不是这个问题的初衷PreparedStatement    有一个方法  setArray(int i, Array array);
    我觉得可能能解决这个问题
    不过 
    我不会用  呵呵
      

  4.   

    还有就是 
    PreparedStatement    另一个方法  setObject(int i, Object o);
    能向里边set数组   我试了试  没成功
      

  5.   

    呵呵,不过你的sql好像是不大对劲。
      

  6.   

    没问题啊
    String sql = "SELECT COUNT FROM TableName TOPIC = ? NAME IN (?)";
    不会有问题的
      

  7.   

    是不是这样?select count from tablename where topic = ? and name in (?)
      

  8.   

    我刚才在sql里面测了一下,没有where子句 结果没通过
      

  9.   

    项目实施中,我们这样做
    String[] strCondition = {"'100'", "'200'", "'300'", "'400'"}
    String sql = "SELECT COUNT FROM Table TOPIC = ? NAME IN (";
    size = sql.length();
    for (int i = 0; i < size; i++) {
      sql += strCondition[i];
      if (i != size - 1) {
        sql += ",";
      } else {
        sql += ")";
      }
    }
    当然strCondition 是灵活的
      

  10.   

    是select count from tablename where topic = ? and name in (?)
    主要的问题 在in那里啊
    sql文是我临时拼的  拼错了 呵呵String sql = "select count from tablename where topic = ? and name in (?)";
    在很久以前已经放入
    PreparedStatement    "'100','200','300','500','900'"是后来组合的
    这样设计也很正常拼sql文肯定能解决   不是这个问题的初衷PreparedStatement    有一个方法  setArray(int i, Array array);
    我觉得可能能解决这个问题
    不过 
    我不会用  呵呵还有就是 
    PreparedStatement    另一个方法  setObject(int i, Object o);
    可以向里边set数组   我试了试  没成功
      

  11.   

    如果都拼sql文的话PreparedStatement不就没有存在的必要了
    只用Statement就可以了