我用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