首页 文章

在mysql中存储过程

提问于
浏览
0

我厌倦了:

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

的结果

1 回答

  • 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;
    

相关问题