我正在使用 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
以任何形式
谢谢你。