这个问题在这里已经有了答案:
更新变量的mysql存储过程为0(1个答案)
9个月前关门了。
我有一个mysql存储过程来检查登录信息是否与我的数据库信息匹配
obs:i我刚刚开始使用mysql,所以这段代码中可能有很多错误。
-表1-功能(email_func,senha)
-表2-客户(email\u cli、senha\u cli)
这是sp代码
delimiter %%
create procedure SpLogin(email varchar(100), senha varchar(15))
begin
declare c int;
declare f int;
begin
if exists(select * from cliente where email_cli = email and senha_cli = md5(senha))
then select 'c' as result;
else set c = 0;
end if;
end;
begin
if exists (select * from funcionario where email_func = email and senha = senha)
then select 'f' as result;
else set f = 0;
end if;
end;
begin
if (f = 0 and c = 0)
then select '0' as result;
end if;
end;
end %%
delimiter ;
两个表中有一个相同的“email”,当我用这个email调用sp时,不管我写什么“senha”,它总是返回“f”。
1条答案
按热度按时间jecbmhm31#
应使用与表中列名不同的名称命名过程参数。
列
senha
绑定为等于列senha
在同一排。mysql不知道你指的是第一个
senha
是第二列senha
是过程参数。