我正在使用
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 …
所以我期待loop1的4,loop2的2,以及表格式等等.
如果我出错了或遗失了一些东西只是纠正我……
我期待的是:
Result:
4 - row1
2 - row2
1 - row3
任何形式
谢谢.