gpt4 book ai didi

mysql - mysql循环查询只返回单条记录

转载 作者:可可西里 更新时间:2023-11-01 07:40:24 27 4
gpt4 key购买 nike

我正在使用 mysql 循环概念并使我的查询执行多次,期望得到多行的结果..

我的查询是:

DELIMITER $$    

CREATE FUNCTION getActiveLife(endTime INT) RETURNS INT
BEGIN
DECLARE x INT;
DECLARE y INT;
DECLARE c1 INT;
SET x = endTime;
SET y = 4;
sloop:LOOP
SELECT count(*) INTO c1 FROM `accounts` where (`life` != 'EXPIRED') and (`lifeEnd` <= x );
IF y > 0 THEN
SET x = x-3600;
SET y = y - 1;
ELSE
LEAVE sloop;
END IF;
END LOOP;
RETURN c1;
END $$
DELIMITER ;

我实际上试图获得从现在到最后 4 小时的结果....它已成功执行,但是当我如下调用它时

SELECT getActiveLife(1368193391)...

它给了我一条值为 1 的记录......不知道那是什么意思......

因为当我执行

SELECT count(*) INTO c1 FROM `accounts` where (`life` != 'EXPIRED') and (`lifeEnd` <= 1368193391 );

它让我算作 4...

所以我期待类似 4 for loop1 ,2 for loop2 等等的表格格式。

如果我出错或遗漏了什么,请纠正我....

我期待这样的事情:

  Result:
4 - row1
2 - row2
1 - row3

以任何形式

谢谢。

最佳答案

您的函数只返回一个值 (return c1)。它返回循环中的最后一个值。

在 MySQL 中,函数不返回表。如果你想要四行,那么你需要执行一个查询。或者,您可以将所有值连接成一个字符串,然后返回它。你想要这个函数做什么?

关于mysql - mysql循环查询只返回单条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16151030/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com