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');

用mysql 写一个存储过程找出一个7个数的数组字符串11121314151617里找出最大一个值并且显示是第几个数

原文地址: https://www.cveoy.top/t/topic/bWco 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录