用mysql 写一个存储过程找出一个7个数的数组字符串11121314151617里找出最大一个值并且显示是第几个数
DELIMITER $$
CREATE PROCEDURE find_max_num(IN num_array VARCHAR(100)) BEGIN DECLARE max_num INT DEFAULT 0; DECLARE max_index INT DEFAULT 0; DECLARE num_list VARCHAR(100); DECLARE cur_num INT; DECLARE cur_index INT DEFAULT 0;
SET num_list = CONCAT(num_array, ',');
WHILE LENGTH(num_list) > 0 DO
SET cur_num = SUBSTRING_INDEX(num_list, ',', 1);
SET num_list = SUBSTR(num_list, LENGTH(cur_num) + 2);
SET cur_index = cur_index + 1;
IF cur_num > max_num THEN
SET max_num = cur_num;
SET max_index = cur_index;
END IF;
END WHILE;
SELECT CONCAT('The max number is ', max_num, ' and it is the ', max_index, 'th number in the list.');
END$$
DELIMITER ;
-- 调用存储过程 CALL find_max_num('11,12,13,14,15,16,17');
原文地址: https://www.cveoy.top/t/topic/bWco 著作权归作者所有。请勿转载和采集!