利用模糊查询的问题,各位请教下!
我最近项目里添加了一个模糊查询的功能,就是搜索关键字,然后查询出数据public void selectbykeyword(String keyword){
String sql="select * from where name like ? or sex like ? or type like ? ......";
.....
....
....
pstmt.setString(1,"%"+keyword+"%");
pstmt.setString(2,"%"+keyword+"%");
pstmt.setString(3,"%"+keyword+"%");
..................................
...................................
pstmt.executeQuery();
System.out.print(keyword); //这个参数是从Servlet中获取的,而且在Tomcat中也能获取到参数
关键就在这里,我获取的参数,但是传到SQL语句就查询不到,页面中没有数据,
我用查询分析器用上面的SQL语句,可以查询到,但是也有问题
比如我查询用户表中的姓名
其中有个姓名叫 美女,那么,我的语句是
select * from where name like '美女'//这个就能查询到
select * from where name like '美' //这个就不能查询到
难道关键字不是这样的?请各位请教下,我想了通宵都搞不定
}
create procedure up_likesel
@name varchar(20),
@sex varchar(2),
@type varchar(20)
as
begin
declare @sqlstr varchar(8000)
set @sqlstr = 'select * from tb where 1 = 1'
if @name is not null --传入一个@NAME
set @sqlstr = @sqlstr+'name like '+@name
if @sex is not null
set @sqlstr = @sqlstr+'sex like '+@sex
is @type is not null
set @sqlstr = @sqlstr+'type like '+@type
exec(@sqlstr)
end
go
页:
[1]
