Mysql
 sql >> Base de données >  >> RDS >> Mysql

Créer un jeu de résultats différent à l'aide d'un jeu de résultats

Pour utiliser un jeu de résultats dans une condition de requête pour un ensemble de requêtes, vous avez besoin d'un curseur.

Veuillez consulter les bases de l'utilisation du curseur ici et dans la 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 ;

Vous pouvez appeler cette procédure en

CALL group_results_by_date();