我现在的查询语句是:sql="select * from TABLE where 问题1 like '"+答案1+"' and 问题2 like '"+答案2+"' and 问题3 like '"+答案3+"'……"但是现在问题来了,有很多,那么sql="select * from TABLE where 问题 like '"+答案+"' order by id"请问这一句里的“问题”和“答案”都是上一个页面传递过来的多个值,请问该如何实现多条件模糊查询呢?
不知道我是否理解了你的意思。由于不知道页面会传来多少个“问题”,你只能去手动拼接sql语句了。比如页面穿来了n个"问题“。你只能去遍历,比如”问题"的name值为"answer",在前台你可以处理下,把所有的answer以逗号分割,比如"answer1,answer2..."String answer[]=request.getParameter("anser").split(",")String answerVal[]=request.getParameter("answerVal").split(",")StringBuilder sb=new StringBuilder();sb.append("select * from table where ")for(int i=0,l=answer.length;i<l;i++){ sb.append(answer[i]+ " like '%"+answerVal[i]+"' and ");}sb.append(" 1=1 ")String sql=sb.toString()//execute query 这段代码不完整,会有点问题 但思路是这样的。还有 别直接这么写,建议用prepareStatement,否则会存在SQL注入。懂思想即可。
ere (1=1)"if (exp1) then str=str&" and ( 条件1)"end ifif (exp2) then str=str&" and ( 条件2)"end ifif (exp3) then str=str&" and ( 条件3)"end ifstr=str&" order by id desc"