在线狂等 你模糊查询

名字不好取_蛋疼 2009-10-08 08:41:02
现在 要给 人员做一个检索查询,可以通过 名称来查询。。
比如: select * from user where name like '%张三%'
如果 检索 为空,那么 就会 是select * from user where name like '%%'
但是这个sql不会检索出 name 为 null的值。。。

我想完成的功能就是: 如果 输入查询条件 就能 按照条件检索。
不过没有检索条件 就查询所有的记录
...全文
161 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
MikanMu 2012-08-20
  • 打赏
  • 举报
回复
如果是oracle,直接在sql中用decode或case when就搞定了
javaemailkaifa 2009-10-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 blliy117 的回复:]
Java code
String sql="SELECT * FROM user u WHERE (1=1)"if(name!=null&& name.length()>0){
sql+=" AND u.name like '%"+ name+"%";
}拼SQL会更好一些!



[/Quote]
up
weiyi520 2009-10-12
  • 打赏
  • 举报
回复
String sql = "";
if(username==null&&username.equals("")){

sql = "select * from user";
}else{
sql = "select * from user u where u.name like '%" + username +"%'";
}
zzz_robinson 2009-10-12
  • 打赏
  • 举报
回复
学习-ing
huangdaxiang0726 2009-10-12
  • 打赏
  • 举报
回复
先判断 加条件就好了
心随莎动 2009-10-12
  • 打赏
  • 举报
回复
3楼的方法不错,就那样
skyair2046 2009-10-09
  • 打赏
  • 举报
回复
只要把传过来的参数做个衣服判断,然后and拼接sql语句就ok了

首先 select * from emp where 1=1;

然后下面if(传过来的值=null) {
}
或者 if(传过来的值!=null) {
and xxx like...知道了吧
}
mint_wei 2009-10-09
  • 打赏
  • 举报
回复
3楼 +1
拼sql比较好.
jourqel 2009-10-09
  • 打赏
  • 举报
回复
先判断一下输入的是不是空~然后用3楼的代码就ok啦
「已注销」 2009-10-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 blliy117 的回复:]
Java code
String sql="SELECT * FROM user u WHERE (1=1)"if(name!=null&& name.length()>0){
sql+=" AND u.name like '%"+ name+"%";
}拼SQL会更好一些!



[/Quote]
同上
lin364653705 2009-10-09
  • 打赏
  • 举报
回复
select * from user where 1=1 and name like '%"+(name==null?"":name)+"%'
longtenggdf 2009-10-09
  • 打赏
  • 举报
回复
对的 在查询前先判断一下~为空就查所有。不为空再用模糊查询
老猫的TOM 2009-10-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 blliy117 的回复:]
Java code
String sql="SELECT * FROM user u WHERE (1=1)"if(name!=null&& name.length()>0){
sql+=" AND u.name like '%"+ name+"%";
}拼SQL会更好一些!



[/Quote]
在拼的时候只要有where 1=1 就不会出现错误,在任何情况下都成立
lzh_me 2009-10-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 blliy117 的回复:]
Java code
String sql="SELECT * FROM user u WHERE (1=1)"if(name!=null&& name.length()>0){
sql+=" AND u.name like '%"+ name+"%";
}拼SQL会更好一些!



[/Quote]

up
v05120s 2009-10-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 blliy117 的回复:]
Java code
String sql="SELECT * FROM user u WHERE (1=1)"if(name!=null&& name.length()>0){
sql+=" AND u.name like '%"+ name+"%";
}拼SQL会更好一些!



[/Quote]
拼SQL会发生注入的呢,,最好不好去拼sql....
v05120s 2009-10-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 blliy117 的回复:]
Java code
String sql="SELECT * FROM user u WHERE (1=1)"if(name!=null&& name.length()>0){
sql+=" AND u.name like '%"+ name+"%";
}拼SQL会更好一些!



[/Quote]
拼SQL会发生注入的呢,,最好不好去拼sql....
longq121 2009-10-08
  • 打赏
  • 举报
回复
要在查询前判断一下条件是否为空,如果为空就不用找了。
a81420754 2009-10-08
  • 打赏
  • 举报
回复
方法很多,具体看程序需要!
水中影子 2009-10-08
  • 打赏
  • 举报
回复
你判断一下,文本框是否输入内容,是否为空
是就是按条件查询不是就查询所有了
swandragon 2009-10-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 blliy117 的回复:]
Java code
String sql="SELECT * FROM user u WHERE (1=1)"if(name!=null&& name.length()>0){
sql+=" AND u.name like '%"+ name+"%";
}拼SQL会更好一些!
[/Quote]

正确
加载更多回复(3)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧