就四十分了,全给了,SQL问题!请指教!!!
String[] ri1=request.getParameter("ring").split(";");
String selectStr = "SELECT count(*) as recordcount from mobile where ";
for (int i=0;i<ri1.length;i++){
if(i==0)
selectStr+="content like "+" '%"+ri1[i]+"%' ";
else
selectStr+="and content like "+" '%"+ri1[i]+"%' ";
}
rs = stmt.executeQuery(selectStr);
rs.next(); totalrecord = rs.getInt("recordcount");
if (totalrecord==0)
{
out.println("抱歉<br/>");
}else
strSQL="SELECT * from mobile where";
for (int i=0;i<ri1.length;i++){
if(i==0)
strSQL+="content like "+" '%"+ri1[i]+"%' ";
else
strSQL+="and content like "+" '%"+ri1[i]+"%' ";
}
System.out.print(""+strSQL+"");
rs = stmt.executeQuery(strSQL);
这是一个复选框提交的查询页面,如果数据库有资料能查的到的话,就可以正常运行,但如果没有就strSQL的值就会变成content like '%MID%' and content like '%WAV%' and content like '%MMF%'而少了SELECT * from mobile where ,不知道哪里写错了,应该怎样改,请高手们指教
问题点数:40、回复次数:7Top
1 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-04-01 18:42:24 得分 30
else {//太不小心了,你没有加括号啊
strSQL="SELECT * from mobile where";
for (int i=0;i<ri1.length;i++){
if(i==0)
strSQL+="content like "+" '%"+ri1[i]+"%' ";
else
strSQL+="and content like "+" '%"+ri1[i]+"%' ";
}
System.out.print(""+strSQL+"");
rs = stmt.executeQuery(strSQL);
}Top
2 楼WHF_0000(无情)回复于 2005-04-01 18:49:43 得分 10
靠 被楼上抢了先!!!!!!!
以后与上这种问题在循环后加个System.out.print就能测出来了。
例如
for (int i=0;i<ri1.length;i++){
if(i==0)
strSQL+="content like "+" '%"+ri1[i]+"%' ";
else
strSQL+="and content like "+" '%"+ri1[i]+"%' ";
System.out.println(i+strSQL);//这样测
}
System.out.print(""+strSQL+"");
rs = stmt.executeQuery(strSQL);
}
Top
3 楼benbenjjf54()回复于 2005-04-01 19:01:16 得分 0
晕 ,都在强分啊,哈Top
4 楼musicsoul(huangdong)回复于 2005-04-01 19:06:44 得分 0
太不小心了Top
5 楼as38981224()回复于 2005-04-01 22:26:14 得分 0
我试了啊,加上括号后出错说Column not found
问题又回来了,我查到有结果的话就可以正常运行,但是没结果的话就出现上面的错误,代码改后
String[] ri1=request.getParameter("ring").split(";");
String selectStr = "SELECT count(*) as recordcount from mobile where ";
for (int i=0;i<ri1.length;i++){
if(i==0)
selectStr+="content like "+" '%"+ri1[i]+"%' ";
else
selectStr+="and content like "+" '%"+ri1[i]+"%' ";
}
rs = stmt.executeQuery(selectStr);
rs.next(); totalrecord = rs.getInt("recordcount");
if (totalrecord==0)
{
out.println("抱歉<br/>");
}else{
strSQL="SELECT * from mobile where";
for (int i=0;i<ri1.length;i++){
if(i==0)
strSQL+="content like "+" '%"+ri1[i]+"%' ";
else
strSQL+="and content like "+" '%"+ri1[i]+"%' ";
}
System.out.print(""+strSQL+"");
rs = stmt.executeQuery(strSQL);
}Top
6 楼WHF_0000(无情)回复于 2005-04-02 16:34:35 得分 0
if 判断一下吗!!!
if(rs.next()){
System.out.print("没数据");
}Top
7 楼myemwjb()回复于 2005-04-02 18:07:47 得分 0
你的表结构是怎样的阿,难道好多字段名称都是 content ?Top




