mysql存储过程

xjreopfe  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(390)

这个问题在这里已经有了答案

更新变量的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”。

jecbmhm3

jecbmhm31#

应使用与表中列名不同的名称命名过程参数。

where ... senha = senha

senha 绑定为等于列 senha 在同一排。
mysql不知道你指的是第一个 senha 是第二列 senha 是过程参数。

相关问题