mysql 存储过程,有in,out参数,输入不同的in参数,查询数据库获取表Id char(36)类型,返回。但结果返回的都是相同的值,为什么? 直接执行里面的sql 的到的值是不同的。
eg
-- 存储过程
DELIMITER //
CREATE PROCEDURE GetCustomerId (
IN name VARCHAR(50),
OUT customerId CHAR(36)
)
BEGIN
SELECT Id into customerId FROM Customer WHERE Name=name LIMIT 1;
END //
DELIMITER ;
-- 第一次调用
call GetCustomerId('jxm',@id);
select @id;
结果
直接执行里面的sql 获得的也是同样的Id
但之后再次调用该存储过程,传递的参数不同
call GetCustomerId('wangang',@id);
select @id;
结果 还是
直接执行sql
SELECT Id FROM Customer WHERE Name='wangang' LIMIT 1;
得到的结果为
存储过程写的有问题,你mysql版本多少!
刚才我试了一下,有个坑,你得找一下,就是name和Name不能一样