mysql 存储过程 局部变量赋值给where 查询无结果 数据库有值 5

createproceduresp_search_employee3(inp_departint)begindeclaretmpchar(4);casep_departw... create procedure sp_search_employee3(in p_depart int)
begin
declare tmp char(4);
case p_depart
when 1 then
set tmp = '研究部';
when 2 then
set tmp = 'IT部';
else
set tmp = '经理部';

end case;
select fname,lname from employee where depart = tmp;
end
//
call sp_search_employee3(1);

查询结果为空
select fname,lname from employee where depart = concat(tmp);
也没有结果
直接查询

select fname,lname from employee where depart = '研究部';
有两条结果
展开
 我来答
晓风寒月
2015-11-12 · TA获得超过353个赞
知道小有建树答主
回答量:502
采纳率:0%
帮助的人:258万
展开全部
字段加上表名:

select `fname`,`lname` from `employee` where `employee`.`depart` = tmp;
百度网友a19d193
2013-03-11 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1435万
展开全部
很简单啊,存储过程没有返回值,你应该使用自定义函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式