日期:2014-05-18  浏览次数:20906 次

jsp模糊查询
定义了两个文本框 初始值都没定义
将这两个框的内容传入后台
我点查询按钮时 name文本框不填 , id 填入 011
  做模糊查询 
得到这样一个语句
select * from table1 where name like ('%%') or id='011' 数据库为mysql name字段有空格
这样查询后把表中所有的结果都查询出来了 而我想要的结果只是 ID为011的 不知道要怎么调整文本框的值啊。
请各为赐教...

------解决方案--------------------
select * from table1 where name like ('%') and id='011' 
把or 改成and
------解决方案--------------------
用PreparedStatement试试,这种写法还有安全问题
------解决方案--------------------
你可以这样判断
String sql = "select * from table1 where ";
 if (null==name && "".equals(name)){
id=‘011’
}else{
name like ('%%') and id='011'
}
不知道合不合你的要求。
------解决方案--------------------
最好用if。。后面的id部分用正则表达式,通配符都可以,要不用case when then end,decode,nvl1...
------解决方案--------------------
将数据库的name字段和网页上name字段分别去掉空格,
name的值:
name = TRIM(name文本框)。
select * from table1 where TRIM(name) = name and id='011' 
具体自己实现。