Mysql实现for循环遍历

这篇具有很好参考价值的文章主要介绍了Mysql实现for循环遍历。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.具体需求

num = 1
ids =(sourceSql: select id from table)
for id in ids{
targetSql: update table2 set age = num where key_id = id;
};
num ++;
这是大概逻辑,主要是通过一段sql查出数据源,然后再遍历查出来的集合做一些其他sql操作,
中间还需要一些自增的变量。
🆗,接下来就是具体sql实现,我们是通过mysql的存储过程实现

2.代码实现

-- 是否存在名字为exam_paper_media_update的存储过程,存在则删除
DROP PROCEDURE IF EXISTS exam_paper_media_update;
-- 创建存储过程
CREATE PROCEDURE exam_paper_media_update () BEGIN
	-- 该变量用于标识是否还有数据需遍历
	DECLARE flag INT DEFAULT 0;
	-- 声明一个变量用来存储遍历过程中的值
	DECLARE paperId BIGINT ( 40 );
	-- 查询出需要遍历的数据集合
	DECLARE idList CURSOR FOR ( SELECT id FROM exam_student_paper WHERE exam_id = 123 AND del_flag = 0 ORDER BY id);
	-- 为下面while循环建立一个退出标志,当游标遍历完后将flag的值设置为1
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = 1;
	-- 打开游标
	OPEN idList;
	-- 取值设置到临时变量中
	FETCH idList INTO paperId;
	-- 遍历未结束就一直执行
	SET @num = 1;
	WHILE  flag != 1  DO
-- 你想要执行的目标功能,这里可以写多个SQL
UPDATE paper_media SET media_url = CONCAT('exam-media-test-bucket/standard-video-fuzzy/',@num, '_TOP.mp4' ) WHERE paper_id = paperId AND tag = 'TOP';
UPDATE paper_media SET media_url = CONCAT('exam-media-test-bucket/standard-video-fuzzy/',@num, '_SIDE.mp4') WHERE paper_id = paperId AND tag = 'SIDE';
UPDATE paper_media SET media_url = CONCAT('exam-media-test-bucket/standard-video-fuzzy/',@num, '_FRONT.mp4') WHERE paper_id = paperId AND tag = 'LOWER';
UPDATE paper_media SET media_url = CONCAT('exam-media-test-bucket/standard-video-fuzzy/',@num, '_FRONT.mp4') WHERE paper_id = paperId AND tag = 'UPPER';
			SET @num = @num + 1;
			-- 游标后移一位
			FETCH idList INTO paperId;
	END WHILE;
-- 关闭游标
CLOSE idList;
END;
-- 执行存储过程
CALL exam_paper_media_update ();

3.文章参考

Mysql实现for循环遍历

mysql循环批量建表(表结构相同,表名可以自定义)文章来源地址https://www.toymoban.com/news/detail-558989.html

到了这里,关于Mysql实现for循环遍历的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习笔记-MySql数据库介绍与连接

    一.MySQL数据库介绍 MySQL是一个关系型数据库管理系统,在 WEB 应用方面,MySQL是最好的 RDMS (Relational Database Management System,关系数据库管理系统) 应用软件,它是由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品,MySQL 是最流行的关系型数据库管理系统中的一个。 1.特点 开源,

    2024年01月19日
    浏览(35)
  • QT学习笔记-开发环境编译Qt MySql数据库驱动与交叉编译Qt MySql数据库驱动

    如果需要在QT程序中实现与MySQL数据库的交互,那么必不可少的一环就是对Qt MySql数据库驱动的编译。 操作系统:Windows10 专业版 64位 Qt版本:Qt 5.15.2 开发环境Qt安装路径:D:Qt 交叉编译服务器:Ubuntu 18.4 交叉编译服务器Qt安装路径:/opt/Qt 目标芯片:rk3568 目标平台:arm64 Qt安装

    2024年02月11日
    浏览(61)
  • 【教程】MySQL数据库学习笔记(三)——数据定义语言DDL(持续更新)

    写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 第一章 《认识与环境搭建》 第二章 《数据类型》 第三章 《数据定义语言DDL》 DDL(Data Definition Language,数据定义语言) 是用于定义和管理数据库对象(如表、视图、索引等

    2024年02月20日
    浏览(34)
  • 数据库(mysql语句)循环语句

    例题1: 20到50之间能被5除余1的所有自然数的和   例题2: 实现如下图 代码  例题3: 代码:power表示power(i,j)-----i的j次方 例题4:  实现 代码:  注:substring是从1开始,第一个参数表示要截取的字符串,第二个i和第三个j表示从第i个开始截,截取j个,如:str=HELLO, subs

    2024年02月05日
    浏览(32)
  • 【Python】列表 List ⑦ ( 列表遍历 | 使用 while 循环遍历列表 | 使用 for 循环遍历列表 | while 循环 与 for 循环对比 )

    将 列表 容器 中的数据元素 , 依次逐个取出进行处理的操作 , 称为 列表的遍历 ; 使用 while 循环 遍历 列表容器 : 元素访问方式 : 使用 下标索引 访问 列表中的元素 ; 循环控制 : 循环控制变量 : 用于指示当前循环的 下标索引 ; 循环条件 : 设置为 循环控制变量 ( 下标索引 ) 列表

    2024年02月06日
    浏览(44)
  • MYSQL存储过程进行写读操作(for循环)

    在我们做统计的时候,尤其是复杂的数据统计,写sql是非常麻烦且痛苦的一件事情。尤其是表结构设计的不适合做统计的时候,更是难以下手。当做 统计的时候;需要牵扯到多张表且每个统计信息需要关联N张表才能出来结果的时候,大家可以用mysql的存储过程来进行业务处理

    2024年02月05日
    浏览(24)
  • idea实现Java连接MySQL数据库

    首先如果没有mysql的需要先下载MySQL,可以看这个教程: Mysql超详细安装配置教程(保姆级)_mysql安装及配置超详细教程-CSDN博客 官网:MySQL :: Download Connector/J 解压并将驱动jar包导入idea , 在Java项目中创建一个bin文件夹,然后把jar包Ctrl+C,V到bin文件夹   然后lib右键,点击Add as L

    2024年02月03日
    浏览(43)
  • 爬虫学习笔记-scrapy链接提取器爬取读书网链接写入MySQL数据库

    1.终端运行scrapy startproject scrapy_read,创建项目 2.登录读书网,选择国学(随便点一个) 3.复制链接(后面修改为包括其他页)  4.创建爬虫文件,并打开  5.滑倒下方翻页处,右键2,点击检查,查看到a标签网址,复制 6.修改爬虫文件规则allow(正则表达式),\\\'d\\\'表示数字,\\\'+\\\'表示多个,\\\'.\\\'使\\\'.\\\'生效

    2024年02月19日
    浏览(36)
  • Java 实现实时监听MySQL数据库变更MySQLBinListener

    目录 1、导出需要的类和接口 2、 定义 MySQLBinlogListener类 3、私有方法,启动重连定时器 4、完整代码   编写一个MySQL数据库实时变更的监听器。 为什么要编写这个一个监听器:为了实时监测和响应MySQL数据库中的变更事件 实时数据同步:通过监听MySQL Binlog,可以捕获数据库的

    2024年02月16日
    浏览(44)
  • C#学习笔记--foreach循环是怎么遍历容器的?实战带你弄懂foreach原理

    上篇文章我们了解了 IEnumerable 和 IEnumerator C#学习笔记–由浅至深理解IEnumerable和IEnumerator 这篇文章我们来研究 foreach 循环 foreach 循环实际上是通过调用集合的 GetEnumerator 方法来获取一个枚举器,然后在每次迭代中调用枚举器的 MoveNext 方法来遍历集合的。当枚举器的 MoveNext 方

    2024年02月03日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包