1

宣布:

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

我想使用员工 ID 的前两位数字的子字符串从员工表中获取员工 ID 的最大 ID。

上面的选择查询,如果要单独执行(在 MySQL 工作台查询浏览器中),给出了完美的结果,但是在存储过程中它的结果为 0(零)表示空值。

  • MaxId 具有与employeeId 相同的数据类型
  • maxid 的数据类型也更改为整数,但结果相同为 0。

知道为什么它在存储过程中没有得到正确的结果吗?

谢谢

4

1 回答 1

1

您在局部变量声明之前忘记了 DECLARE 语句,并且混淆了 Maxid 和 @Maxid。尝试这个:

DECLARE Maxid varchar(11) default null;
Select ifnull(max(employeeID),0) into Maxid from employees where mid(employeeID,1,2) = '04';
于 2013-06-12T17:28:34.777 回答