根据您提供的存储过程代码,问题出在变量名 id
的重复使用上。在查询语句中,您使用了 where id = id
来比较值。这样写会导致条件始终成立,因为它实际上是比较字段自身。所以存储过程会统计整个表中满足该条件的记录数量。
要解决此问题,请将输入参数 in id
与表格字段区分开,可以通过更改参数名称或者给表格字段添加前缀来实现。例如:
delimiter @@
create procedure stu_g_r (in student_id int, out count_result int)
begin
select count(*) into count_result from grade where id = student_id;
end @@
以上示例中,将输入参数名 id
修改为 student_id
,以便与表格字段 id
区分开来。这样就能够正确地根据条件统计记录数量。
请注意,在存储过程中引用变量时最好使用不同的命名约定来避免混淆和错误。
内容由零声教学AI助手提供,问题来源于学员提问