JAVA sql NOT IN list语句
我试图从记录ID NOT IN列表的数据库中选择记录.
看看@我的问题如下.
String Sqlids = "2,6,3,9"; // this is dynamic so the number of element is unknown
String str= "SELECT TOP 1 * FROM student WHERE ID NOT IN (2,6,3,9) ORDER BY NEWID()";
PreparedStatement stat = con.prepareStatement(str);
ResultSet rs = stat.executeQuery();
上面的陈述工作很精细,但如果我改成它
String Sqlids = "2,6,3,9";
String str= "SELECT TOP 1 * FROM student WHERE ID NOT IN (Sqlids) ORDER BY NEWID()";
PreparedStatement stat = con.prepareStatement(str);
ResultSet rs = stat.executeQuery();
//i also try this
String Sqlids = "2,6,3,9";
String str= "SELECT TOP 1 * FROM student WHERE ID NOT IN (?) ORDER BY NEWID()";
PreparedStatement stat = con.prepareStatement(str);
stat.setString(1,Sqlids );
ResultSet rs = stat.executeQuery();
上面的声明没有过滤由于Sqlids是一个字符串,它将其视为一个参数,因此它返回重复的行,是否存在用于存储2,6,3,9等值的整数格式?因为Sqlids来自名为SqlidList的arraylist我尝试这样的somtin
Iterator iTr = SqlidList.iterator();
while(iTr.hasNext()){
stat.setString(1,iTr.next().toString()+",");
}
但是setString(1, – )因为在while循环中不可用