我是靠谱客的博主 爱笑跳跳糖,最近开发中收集的这篇文章主要介绍mysql 多层循环_Mysql存储结构多层循环的多种方式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、通过Repeat方式

DELIMITER $$

DROP PROCEDURE IF EXISTS insertxxx $$

CREATE PROCEDURE insertxxx()

BEGIN

declare indexSidOut int;-- 内层循环索引936次

declare indexSidIn int;-- 外层循环索引31次

DECLARE fidC int;

DECLARE nameC VARCHAR(200);

SET indexSidIn = 1;

set indexSidOut = 5486;

REPEAT

--   sql语句

REPEAT-- 内层循环31次

--   sql语句

SET indexSidIn =  indexSidIn + 1;

UNTIL indexSidIn > 31-- 结束的索引注意,该处不能有分号,切记切记

END REPEAT;

SET indexSidOut  = indexSidOut + 1;

UNTIL indexSidOut > 6421 -- 结束的索引

END REPEAT;

END $$

DELIMITER ;

2、通过while方式实现

CREATE PROCEDURE insertSql()

BEGIN

declare indexSidOut int;-- 内层循环索引936次 -- 5486--6421

declare indexSidIn int;-- 外层循环索引31次

DECLARE fidC int;-- 院士id

DECLARE nameC VARCHAR(200); -- 院士姓名

SET indexSidIn = 1;

set indexSidOut = 5486;

WHILE indexSidIn < 6422 DO

select fid , Word INTO fidC , nameC from words where Id =

indexSidOut;-- into 前后逗号分隔,我晕

WHILE indexSidIn < 32 DO-- 内层循环31次

insert into words(Sid , Fid , Word)

VALUES(indexSidIn , fidC , nameC);

END WHILE;

END WHILE;

END;

3、通过游标实现

CREATE PROCEDURE INSERToTomMutil()

BEGIN

-- 需要定义接收游标数据的变量

DECLARE _fid int;

DECLARE _word VARCHAR(200);

DECLARE _site_id VARCHAR(200);

-- 遍历数据结束标志

DECLARE done INT DEFAULT FALSE;

-- 游标words

DECLARE cur_words CURSOR FOR -- sql;

BETWEEN 5000109 and 50900504;

-- 游标site

DECLARE cur_site CURSOR FOR --sql;

-- 将结束标志绑定到游标--注意只能存在一个

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

-- 打开游标

OPEN cur_words;

-- 开始循环

read_loop_words: LOOP

-- 提取游标里的数据,这里只有一个,多个的话也一样;

FETCH cur_words INTO _fid , _word;

-- 声明结束的时候

IF done THEN

LEAVE read_loop_words;

END IF;

-- 打开游标

OPEN cur_site;

-- 这里做你想做的循环的事

read_loop_site: LOOP

-- 提取游标里的数据

FETCH cur_site INTO _site_id;

-- 声明结束的时候

IF done THEN

LEAVE read_loop_site;

END IF;

-- 这里做你想做的循环的事

INSERT INTO wordass(fid , word , sid )

values(_fid , _word , _site_id );

END LOOP;

SET done = 0;-- 重新进入外层循环,注意点

-- 关闭游标

CLOSE cur_site;

END LOOP;

-- 关闭游标

CLOSE cur_words;

END

最后

以上就是爱笑跳跳糖为你收集整理的mysql 多层循环_Mysql存储结构多层循环的多种方式的全部内容,希望文章能够帮你解决mysql 多层循环_Mysql存储结构多层循环的多种方式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部