CREATE DEFINER=`root`@`192.168.1.%` PROCEDURE `paimin`() BEGIN DECLARE zan1 INT DEFAULT 1; DECLARE cai1 INT DEFAULT 1; DECLARE ping1 INT DEFAULT 1; DECLARE fen1 INT DEFAULT 1; DECLARE shan1 INT DEFAULT 1; DECLARE bzan INT DEFAULT 1; DECLARE bcai INT DEFAULT 1; DECLARE bping INT DEFAULT 1; DECLARE bfen INT DEFAULT 1; DECLARE bshan INT DEFAULT 1; DECLARE Done INT DEFAULT 0; DECLARE CurrentPaiMing INT DEFAULT 0; DECLARE ZUBOID VARCHAR (6); DECLARE ZUBOGOLD INT DEFAULT 0; DECLARE ud_row VARCHAR (6); DECLARE paimin_row INT DEFAULT 0; DECLARE rs2 CURSOR FOR SELECT out, zan, quit, ping, fen, shan, ( zan*1 - cai*1 + ping*1 + fen*1 + shan*1 ) paimin FROM lfsj_sort_user_info; /* declare cursor */ DECLARE rs CURSOR FOR SELECT WALL, GOLD FROM ( SELECT WALL, SUM(GOLD) GOLD FROM T_ANCHOR_GAINS GROUP BY WALL ) A ORDER BY GOLD DESC; /* exception handling */ DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1; /* open cursor */ OPEN rs; /* Take out the value of the LingQi field of the current record one by one, you need to judge the maximum value*/ FETCH NEXT FROM rs INTO ZUBOID, ZUBOGOLD; /* Traverse the data table */ REPEAT IF NOT Done THEN SET CurrentPaiMing = CurrentPaiMing + 1; UPDATE t_user_info SET RANKING = CurrentPaiMing WHERE ID = ZUBOID; UPDATE lfsj_sort_user_info SET shan = ZUBOGOLD WHERE ud = ZUBOID; END IF; FETCH NEXT FROM rs INTO ZUBOID, ZUBOGOLD; UNTIL Done END REPEAT ; /* close the cursor */ CLOSE rs; /* declare cursor */ /* exception handling */ -- DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done2 = 1; UPDATE t_user_info SET RANKING = 0; SET Done = 0; /* open cursor */ OPEN rs2; /* Take out the value of the LingQi field of the current record one by one, you need to judge the maximum value*/ FETCH NEXT FROM rs2 INTO ud_row, bzan, bcai, bping, fen, bshan, paimin_row; /* Traverse the data table */ REPEAT IF NOT Done THEN UPDATE t_user_info a SET a.RANKING = paimin_row, a.SNUM = concat( '{"quit":"', bcai, '"quit":"', bcai, '","fen":', fen, '","ping":', bping, '","shan":', bshan, '"}' ) WHERE a.ID = ud_row; INSERT INTO `kwc`.`cc` (`id`) VALUES ('aa' ); INSERT INTO `kwc`.`cc` (`id`) VALUES (concat( '{"quit":"', bcai, '"quit":"', bcai, '","fen":', fen, '","ping":', bping, '","shan":', bshan, '"}' ) ); END IF; FETCH NEXT FROM rs2 INTO ud_row, bzan, bcai, bping, fen, bshan, paimin_row; UNTIL Done END REPEAT ; /* close the cursor */ CLOSE rs2; END