我厌倦了:
delimiter // DROP PROCEDURE IF EXISTS tlu30khtd_findkhs // create procedure tlu30khtd_findkhs(in kehoachso varchar(15)) begin select *from TLU30KeHoachTuyenDung where KeHoachSo = kehoachso; end; // delimiter;
当我用以下方式调用程序时:
call tlu30khtd_findkhs('KH0001')
但结果不使用
where KeHoachSo = kehoachso它显示
select *from TLU30KeHoachTuyenDung
的结果
答案 0 :(得分:0)
问题是您的参数名称与列相同。这意味着您的where
子句不会看到参数,只会看到列名。
解决方案是为参数添加前缀。我倾向于使用p_
或v_
:
delimiter //
DROP PROCEDURE IF EXISTS tlu30khtd_findkhs //
create procedure tlu30khtd_findkhs(in p_kehoachso varchar(15))
begin
select t.*
from TLU30KeHoachTuyenDung t
where t.KeHoachSo = p_kehoachso;
end; //
delimiter;