mysql编程,如何存储多个查询结果

大家好,我的需求是这样的,在写mysql存储过程的时候,
在循环游标中的数据时,根据数据会继续查询相关记录

#开始获取游标的值
FETCH root_knowledge_cursor INTO _knowledge_id,_knowledge_code;
#此处查到的记录会是多条!我可以采用什么样的数据类型来存储这多条记录的结果(_childKids)?并将该结果进行遍历,依次存储到另一张表中?这就是我的问题
SELECT knowledge_id INTO _childKids FROM edu_knowledge k
WHERE k.knowledge_code LIKE CONCAT(_knowledge_code,'%');
IF _childKids IS NOT NULL THEN
#此处希望可以循环 _childKids ,依次向表插入记录
INSERT INTO a(rootKid,childKid) VALUES (_knowledge_id,_childKid);
#_childKid为遍历_childKids 时取得的值
END IF;
UNTIL flag
END REPEAT;
CLOSE root_knowledge_cursor;

如果有表达不清楚的地方,还请大家指正!
没有C币悬赏不了,还请见谅!

根据您的需求,您需要存储多个查询结果并将其遍历后存储到另一张表中。在MySQL中,您可以使用游标和临时表来实现这一目标。
首先,您可以使用以下语句创建一个临时表来存储查询结果:

CREATE TEMPORARY TABLE temp_childKids (
  childKid INT
);

然后,在您的存储过程中,您可以使用游标来获取查询结果并将其插入到临时表中:

DECLARE done INT DEFAULT FALSE;
DECLARE _childKid INT;

DECLARE root_knowledge_cursor CURSOR FOR
SELECT knowledge_id FROM edu_knowledge k
WHERE k.knowledge_code LIKE CONCAT(_knowledge_code,'%');

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN root_knowledge_cursor;

read_loop: LOOP
  FETCH root_knowledge_cursor INTO _childKid;
  IF done THEN
    LEAVE read_loop;
  END IF;
  INSERT INTO temp_childKids (childKid) VALUES (_childKid);
END LOOP;
···
CLOSE root_knowledge_cursor;、
最后,您可以使用以下语句遍历临时表并将其插入到另一张表中:
···
DECLARE done INT DEFAULT FALSE;
DECLARE _childKid INT;

DECLARE child_kids_cursor CURSOR FOR
SELECT childKid FROM temp_childKids;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN child_kids_cursor;

read_loop: LOOP
  FETCH child_kids_cursor INTO _childKid;
  IF done THEN
    LEAVE read_loop;
  END IF;
  INSERT INTO a (rootKid, childKid) VALUES (_knowledge_id, _childKid);
END LOOP;

CLOSE child_kids_cursor;