如何使用 while 循环计算 MySQL 中前 100 个整数的总和

how to calculate the sum of the first 100 integers in MySQL with a while loop

提问人:wiam leo 提问时间:9/19/2022 最后编辑:Rohit Guptawiam leo 更新时间:9/20/2022 访问量:411

问:

我必须找到前 100 个自然数的总和。1+2+3+...+n,依此类推。使用“while 循环”时。

delimiter $

create procedure `calcul`.somme()

begin

declare s int default 0;
declare i int default 1;

while(i<=100) do
    set s := s+i;
    set i := i+1;
end while;
select s;

end;
$
call `calcul`.somme()

当我调用 somme() 时,我收到此错误 -->

call calcul.somme()= Error Code: 2013. Lost connection to MySQL server during query

mysql 求和 do-while

评论

2赞 Akina 9/19/2022
不要使用 WHILE,而是使用 REPEAT ..直到我< 100。PS. - 必须是 .set i := i=1;+1
0赞 Cid 9/19/2022
无需循环。SELECT 5050;
0赞 flyingfox 9/19/2022
SET @i=100; SELECT (@i+1)*@i/2;将是您的另一个选择
0赞 Rohit Gupta 9/19/2022
@lucumt - 这显然是使用 while 循环的作业。
0赞 Rohit Gupta 9/19/2022
@wiamleo - 有什么问题?

答:

0赞 Rohit Gupta 9/19/2022 #1

查询花费的时间太长,引擎超时。

您可以在 MySQL Workbench 中编辑 SQL 编辑器首选项:

  1. 在应用程序菜单中,选择“编辑>首选项”>“SQL 编辑器”。
  2. 查找 MySQL 会话部分并增加 DBMS 连接读取超时值。
  3. 保存设置,相当MySQL Workbench并重新打开连接。

评论

0赞 wiam leo 9/19/2022
Emm 相同的错误,总和不起作用
0赞 Rohit Gupta 9/19/2022
您是否找到了设置,尝试了至少 6000,并且是否重新打开了连接?也许尝试重新启动mysql。
0赞 P.Salmon 9/19/2022
'Wiam Leo' - 尽量更具体 - 你是说连接问题仍然存在还是程序没有产生正确的结果,请确认你修改为设置 i := i+1;NB 循环很慢。.减少到 10 检查它是否有效,然后推高到所需的限制,最好还是参数化。
0赞 wiam leo 9/20/2022 #2
use calcul;
delimiter $
create procedure somme()
begin


declare s int default(0);
declare i int default(1);

    while(i<=100) do
    set s := s+i;
    set i := i+1;
    end while;
select s;
end;
$
CALL somme()

谢谢,问题解决了 👌