我用mysql循环的概念,使我的查询多次执行预期多行的结果..只有单个记录是由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 LOOP1,2环2以表格格式。
如果我错了或失去了一些东西只是指正....
我期待这样的:
Result:
4 - row1
2 - row2
1 - row3
在任何形式
谢谢。
您只有一个INT变量'c1',您可以在循环中覆盖并返回它。我不知道你为什么认为你应该得到一个结果集。如果你想在最近几个小时内获得记录,我不了解循环的必要性。 – 2013-04-22 15:42:18
可能是我误解了它...有没有办法返回一张表作为结果.. – troy 2013-04-22 15:43:26
你究竟在做什么? – 2013-04-22 15:43:58