如何实现SQL的多条件模糊查询

我现在的查询语句是:sql="select*fromTABLEwhere问题1like'"+答案1+"'and问题2like'"+答案2+"'and问题3like'"+答... 我现在的查询语句是:
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"
请问这一句里的“问题”和“答案”都是上一个页面传递过来的多个值,请问该如何实现多条件模糊查询呢?
展开
 我来答
flyingzl
2011-03-16 · TA获得超过218个赞
知道小有建树答主
回答量:268
采纳率:100%
帮助的人:228万
展开全部
不知道我是否理解了你的意思。

由于不知道页面会传来多少个“问题”,你只能去手动拼接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注入。懂思想即可。
手机用户82818
2011-03-17 · TA获得超过385个赞
知道答主
回答量:373
采纳率:100%
帮助的人:341万
展开全部
ere (1=1)"

if (exp1) then
str=str&" and ( 条件1)"
end if
if (exp2) then
str=str&" and ( 条件2)"
end if
if (exp3) then
str=str&" and ( 条件3)"
end if

str=str&" order by id desc"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3ef46bc
2011-03-16 · TA获得超过214个赞
知道小有建树答主
回答量:343
采纳率:100%
帮助的人:207万
展开全部
使用 or
问题 like '"+答案+"' or 问题 like '"+答案+"'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蝶儿忙
2011-03-17 · TA获得超过1.1万个赞
知道大有可为答主
回答量:2629
采纳率:0%
帮助的人:0
展开全部
昨天不是问过了 没有简单方法的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式