声明:

Maxid varchar(11) default null;
Select ifnull(max(employeeID),0) into @Maxid from employees where mid(employeeID,1,2) = '04';

我想使用雇员ID的前两个数字的子字符串从雇员表中获取雇员ID的最大ID。
上面的select查询如果要单独执行(在MySQL工作台查询浏览器中),会给出完美的结果,但是在存储过程中,它的结果是0(零)表示空值。
MaxId与employeeId具有相同的数据类型
Max的Datatype也变为整数,但结果为0。
知道为什么在存储过程中没有得到正确的结果吗?
谢谢

最佳答案

在本地变量声明之前忘记了声明语句,而将Max和@ Max ID混合在一起。试试这个:

DECLARE Maxid varchar(11) default null;
Select ifnull(max(employeeID),0) into Maxid from employees where mid(employeeID,1,2) = '04';

关于mysql - 使用Max()函数无法在MySQL存储过程中将最大ID提取到变量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17071154/

10-11 17:39