ZBLOG

delimiter @@ create procedure stu_g_r (in id int,out cc int) begin select count(*) into cc from grade where id = id; end @@为什么我的存储把整个表都数了一遍

根据您提供的存储过程代码,问题出在变量名 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助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=14580

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?