SQL调用存储过程模糊查询问题
.net想要实现通过调用存储过程模糊查询其他的就省略了存储过程中模糊查询的那句selectemp_namefromempswhereemp_namelike'%['+@e...
.net 想要实现通过调用存储过程模糊查询
其他的就省略了 存储过程中模糊查询的那句
select emp_name from emps where emp_name like '%[' + @emp_name + ']%'
这样的确是实现了模糊查询
比如@emp_name输入的是"张"的确能查到"张三""张四"……
但是当输入的是"张三"的时候"张三"的确出来了,可"张四""李三"都搜出来了~因为有一个字相匹配它就搜出来了~
想问下怎么才能实现让输入"张三"的时候只出现同时含有这俩字的结果~ 展开
其他的就省略了 存储过程中模糊查询的那句
select emp_name from emps where emp_name like '%[' + @emp_name + ']%'
这样的确是实现了模糊查询
比如@emp_name输入的是"张"的确能查到"张三""张四"……
但是当输入的是"张三"的时候"张三"的确出来了,可"张四""李三"都搜出来了~因为有一个字相匹配它就搜出来了~
想问下怎么才能实现让输入"张三"的时候只出现同时含有这俩字的结果~ 展开
展开全部
取消前面的那个% 就好了
这个看你怎么分析了, %张% 代表 查询所有包括张的 字段
张% 代表查询 以张开头的所有字段
%张 代表所有以张结尾的字段
你的语句我建议你写成
select emp_name from emps where( emp_name like @张% or emp_name %@张 )
这样就能取消很多了
另外如果你的是存储过程需要看看执行的结果是不是你要的.
这个看你怎么分析了, %张% 代表 查询所有包括张的 字段
张% 代表查询 以张开头的所有字段
%张 代表所有以张结尾的字段
你的语句我建议你写成
select emp_name from emps where( emp_name like @张% or emp_name %@张 )
这样就能取消很多了
另外如果你的是存储过程需要看看执行的结果是不是你要的.
更多追问追答
追问
那个语句是存储过程里的~ 张三只是个例子 实际是要把textbox里的text传给@emp_name的~ 不一定输入的是什么 也不一定是几个字 这怎么改
追答
简单,有两个办法,第一个是传递参数的时候 你在 t1='%'&textbox1.text & '%' 你把这个值 传递进去.
这样就是在前台把数据准备好.
第二种是:你直接把textbox1.text 传递进去, 然后把存储过程那里 修改为:
emp_name like '%'+@emp_name+'%'
还有就是存储过程那里之前你可以定义一个变量 类似于:
delcare @emp varchar
set @emp='%'+@emp_name +'%'
之后 直接在where 语句那里写成 emp_name like @emp 就好了
展开全部
有些时间没写代码了,我只能给点建议,具体我还真些不出来了。'%[' + @emp_name + ']%'这句我觉得是把字字段拆开了。你再看看这句的语法有没有问题。
追问
我查过好像存储过程中模糊查询就应该这样写 我觉得也是把字段拆开了 但是不知道怎么合
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以看看@emp_name在传入“张三“的时候值到底是张三还是张
追问
传入的的确是张三 因为所有带三的数据也会被读出来~ 就是读出来的是分别含有张字和三字的数据 而不是同时含有张三这两个字的数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询