文章学习了存储过程,其中遗留的一个问题就是:存储过程中封装的SQL语句块如果碰到类似循环、判断、游标及多项混合等复杂的语句,那可是相当令人头痛的事情啊。
我自己是深有体会的!因为读懂这样的存储过程真的很令人抓狂!
本文就来通过简单案例从本质上掌握MySQL中三大循环方法。
既然要用案例,我们当然不能缺少数据准备的过程。好在我已经有一种平时记录开支的习惯,那就用这个日常开支记录表做案例。
表结构如下图:共有6个字段。
其次,我们确定下要如何使用这个表。
由于涉及的是日常开支,为更好地展示循环的效果,我采用逐条读取记录取每条记录金额汇总,得到总金额,再与直接求和结果对比,看看效果如何!
看看金额求和结果:
While循环
这是在计算机语言中最常见的一种循环方式。先看看它的语法格式:
while条件判断do语句块;endwhile;
其次,我们创建一个存储过程来实现逐条记录汇总金额的目的。
delimiter//dropprocedureifexiststj_jine;createproceduretj_jine(outjineDECIMAL(18,2))beginDECLAREnumint; DECLAREiint; DECLAREchargeDECIMAL(18,2);seti=1,jine=0.00; SELECTmax(recordID)INTOnumFROMlive_cost_in