使用一个结果集创建不同的结果集[关闭]
Posted
技术标签:
【中文标题】使用一个结果集创建不同的结果集[关闭]【英文标题】:Create different result set using one result set [closed] 【发布时间】:2015-06-15 09:05:55 【问题描述】:通过使用mysql,我得到了类似的结果
count date content
19 2015-01-02 test1
6 2015-01-02 test2
3 2015-01-03 test3
12 2015-01-04 test4
48 2015-01-04 test5
10 2015-01-05 test6
我想使用日期值将该结果划分为不同的结果集。我想要这样的结果集,
count date content
19 2015-01-02 test1
6 2015-01-02 test2
count date content
3 2015-01-03 test3
12 2015-01-03 test4
count date content
48 2015-01-04 test5
10 2015-01-04 test6
是否可以使用一个结果集创建不同的结果集。
【问题讨论】:
请提及这个的真实用例。希望会有不同(更好)的解决方案。 【参考方案1】:要在查询条件中为一组查询使用结果集,您需要一个游标。
请查看here 和docs 中的光标使用基础知识
DELIMITER $$
CREATE PROCEDURE group_results_by_date
BEGIN
DECLARE v_finished INTEGER DEFAULT 0;
DECLARE cdate DATE DEFAULT "2015-01-01";
-- declare cursor for getting list of dates
DEClARE date_cursor CURSOR FOR
SELECT DISTINCT (date) FROM yourtable;
-- declare NOT FOUND handler
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET v_finished = 1;
OPEN date_cursor;
get_content: LOOP
FETCH date_cursor INTO cdate;
IF v_finished = 1 THEN
LEAVE get_content;
END IF;
-- Select query for different dates
Select count, date, content from yourtable where date = cdate;
END LOOP get_content;
CLOSE date_cursor;
END$$
DELIMITER ;
你可以调用这个过程
CALL group_results_by_date();
【讨论】:
以上是关于使用一个结果集创建不同的结果集[关闭]的主要内容,如果未能解决你的问题,请参考以下文章