0

我正在编写一个程序来显示当前学生是否在表中。测试后,我遇到了几个错误......

Create procedure stuID(p_id int)    
begin   
    declare v_msg varchar(100);
    declare count_id int;

    select count(*) into count_id from students where id = p_id; 


    If null then
        set v_msg := 'null';
    Elseif count_cl_id = 1 then
        set v_msg := 1;
    Elseif count_cl_id = 0 then
        set v_msg := 0;
    End if;

    Select v_msg;
end;

所以我创建了另一个程序来测试这些......

创建过程 test_stuID() 开始

    -- Test with null
    call stuID(null);

    -- Test with invalid ID
    call stuID('0');

    -- Test with String
    call stuID( 'false' );

    -- Test with true ID
    call stuID('25');

end;

#

两个问题:

1) null case 不返回 v_msg 作为 'null'

2) 不返回真正有效的 ID 25。

我究竟做错了什么???提前致谢。

4

1 回答 1

0

2个错误:

1)If null应替换为if count_id is null

2)您count_cl_id用于比较而count_id参数名称。

我在我的系统上进行了更正测试,并且工作正常。

于 2012-09-19T02:14:23.047 回答