Дайте это. Может потребоваться некоторая настройка, если строка MenuIDs не соответствует 'menuId, menuId, menuId'.
Также я не знаю, к какому типу данных относится столбец menuId в вашей целевой таблице (INT?), Поэтому вам, возможно, придется также ввести некоторую числовую проверку (в случае '1,2,3, банан, 4,5') передается как входной параметр MenuIds).
DELIMITER $$
DROP PROCEDURE IF EXISTS `insert_role_menuids`$$
CREATE PROCEDURE `insert_role_menuids`(IN RoleID INT,IN MenuIDs varchar(500))
BEGIN
declare idx,prev_idx int;
declare v_id varchar(10);
set idx := locate(',',MenuIDs,1);
set prev_idx := 1;
WHILE idx > 0 DO
set v_id := substr(MenuIDs,prev_idx,idx-prev_idx);
insert into RolesMenus (RoleId,MenuId) values (RoleID,v_id);
set prev_idx := idx+1;
set idx := locate(',',MenuIDs,prev_idx);
END WHILE;
set v_id := substr(MenuIDs,prev_idx);
insert into RolesMenus (RoleId,MenuId) values (RoleID,v_id);
END$$
DELIMITER ;