String[] goods=str.split("\n");//有1000条 那我是 for(int i=0;i<1000:i++) { sql="select * from tab where barcode='"+goods[i]+"'" ResultSet rs_tmp = null; rs_tmp=b_st.executeQuery(sql_tmp); } 方法二 String sss=""; for(i=0;i<1000;i++) { sss="'"+goods[i]+"',"; } sss=sss+"0"; sql="select * from tab where barcode in ("+sss+")"; ResultSet rs_tmp = null; rs_tmp=b_st.executeQuery(sql_tmp); while(rs_tmp.next) {}
两个方法哪个快?我就只能想到这两个,还有别的吗?肯定是第二个块,你还可以用or。 where barcode in () 这里的话,最多是只能1000个吗? 第二个吧 in 是很费时的兄弟。还有* 不是in最多只能有1000个,是sql长度有限制。
你可以把1000个分几次执行,比如分10次,每次100个这样。 关注中…… select table_name,column_name from all_tab_columns where column_name='BARCODE' and column_name='GOODS_NAME' 显示的是无记录,但是我确定有表包含这两个字段的,请问,应该怎么写呀? 做索引 快很多 我现在不知道那几个表中包含上面那两个字段,所以我先查找下到底是哪些表里有