永发信息网

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

答案:2  悬赏:20  手机版
解决时间 2021-03-15 11:12
  • 提问者网友:贪了杯
  • 2021-03-14 18:27
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 = '研究部';
有两条结果
最佳答案
  • 五星知识达人网友:轻熟杀无赦
  • 2021-03-14 19:49
字段加上表名:

select `fname`,`lname` from `employee` where `employee`.`depart` = tmp;
全部回答
  • 1楼网友:逐風
  • 2021-03-14 20:48
用代码从db读出来,然后根据类型赋值就行了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯