我厌倦了:
分隔符//
如果存在则删除程序tlu30khtd_findkhs //
创建过程tlu30khtd_findkhs(在kehoachso varchar(15)中)
开始
从* TLU30KeHoachTuyenDung中选择*其中KeHoachSo = kehoachso;
结束; //
定界符
当我使用以下命令调用过程时:调用tlu30khtd_findkhs('KH0001')
但结果不要使用KeHoachSo = kehoachso
它显示选择* from TLU30KeHoachTuyenDung的结果
最佳答案
问题在于您的参数名称与列相同。这意味着您的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;