需要查询满足条件的所有记录,表呢不大也就400条,
是这样的:先拿到一个请求数组 String[] a=new String[?];
数组长度不确定,可能是2个,3个,也可能是100多200多.
查询数据库表中满足字段值与数组元素相等的所有记录:是
String sqltail=""
for(int i=0;i<a.length;i++){
sqltail+=a[i]+","
}
处理一下sqltail.
然后:
select name from table where id(a[1],a[2],a[3]......);这样好呢
还是
 for(int i=0;i<a.length;i++){
sql="select name from table where id="+a[i];
db.executeQuery(sql);
....
}
求答案,哪个效率高些呢?谢谢

解决方案 »

  1.   

    第二种你执行的查询太多了吧自己在方法执行的前后long l1 = System.currentTimeMillis() ;
      //select operation 
    long l2 = System.currentTimeMillis() ;long l =  l1 - l2 ;
    比较一下就可以了
      

  2.   

    写错了
    处理一下sqltail.
    然后:
    select name from table where id in (a[1],a[2],a[3]......);这样好呢少了一个in 字 
      

  3.   

    前一种方法可能会造成SQL语句太长,数据库系统对SQL语句的长度可能会有限制
    后一种方法会造成交互的次数过多,影响效率
    建议采用折中的办法,10个(当然可以自定)分一组用in查询
      

  4.   

    北极人说得对.不过对于数目可能没实际测过.我是做过比较长的SQL语句的,大致有些印象,对于ID来说,一般不会是超过12个字符长度的,所以基本可以20为一组.