原始数据是这样的:
每个影片有多个类型,想要统计热门的影片类型
建立一个表 meiju_classify 记录类型值,使用存储过程从原表中录入数据
delimiter //
CREATE PROCEDURE p_insert_classify ()
BEGIN
DECLARE sum INT ;
DECLARE i INT DEFAULT 0 ;
DECLARE j INT DEFAULT 1 ;
DECLARE s VARCHAR(20);
DECLARE k INT;
DECLARE m INT;
DECLARE word VARCHAR(4);
DECLARE meijutt_cur1 CURSOR FOR SELECT classify FROM meijutt ;
OPEN meijutt_cur1 ;
SELECT count(1) INTO sum FROM meijutt ;
WHILE i < sum DO
FETCH meijutt_cur1 INTO s;
SELECT char_length(s) - char_length(REPLACE(s, ',', '')) + 1 INTO k ;
set m=0;
WHILE m < k DO
SELECT substring_index(substring_index(s, ',', m + 1),',' ,-1) INTO word ;
INSERT INTO meiju_classify (classify) VALUES (word) ;
SET m = m + 1;
END WHILE ;
SET i = i + 1 ;
END WHILE ;
END//
delimiter ;
调用存储过程
call p_insert_classify ();
根据meiju_classify表统计结果
select classify,count(1) from meiju_classify group by classify order by count(1) desc;
剧情,喜剧,罪案是最热门的三种影片类型