Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Crie um conjunto de resultados diferente usando um conjunto de resultados


Para usar um conjunto de resultados em uma condição de consulta para um conjunto de consultas, você precisa de um cursor.

Por favor, verifique o básico do uso do cursor aqui e nos documentos
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 ;

Você pode chamar este procedimento por
CALL group_results_by_date();