sql循环语句问题,请教一下各位
简化一下我的问题
表A,里面字段a1,a2,a3
另外一个数组 Array[m]
现在要查询A表 ,查询条件:字段a1的值等于数组Array[m]里值
我的方法:
......
for(int i=0;i <m;i++)
{
......
sql= "select * from A where a1= ' "+Array[i]+ " ' ";
while(rst2.next())
{
......
}
......
}
....
因为实际SQL语句比这复杂很多,所有这样循环做感觉很慢,有没有在SQL语句里面完成循环操作的方法,或者其他方法啊,请教各位一下
------解决方案--------------------sql= "select * from A “
while(rs!=null&&rs.next){
boolean flag=false;
int a=rs.getInt(1);
for(int i=0;i <m;i++){
if(a==Array[m]){
flag=true;
break;
}
if(flag)
a满足你的条件,后面完成你的处理;
}
}
------解决方案--------------------select * from A where a1=Array[0] or a1=Array[1] or ... a1=Array[m]
------解决方案--------------------尽量不要循环中套sql,这样效率比较低而且错误率比较高.
String name= " ";
for(int i=0;i <m;i++)
{
name=Array[i];
}
sql= "select * from A where a1= ' "+name+ " ' ";
while(rst2.next())
{
......
}
------解决方案--------------------同意2楼的方法
------解决方案--------------------楼上几位说的已经差不多解决问题了
我只简单说一句,复杂的多次重复应用的sql最好写成存储过程
------解决方案--------------------恩,谢谢 各位的指教
------解决方案-------------------- 如果要在循环中就用PreparedStatement.
------解决方案--------------------对阿 ,很好的 给分啊