• MySQL的while循环


    https://blog.csdn.net/qq_43012693/article/details/108113810   

    含义
    WHILE 语句也是有条件控制的循环语句,当满足条件时,执行循环内的语句,否则退出循环。它的基本语法格式如下:

    WHILE search_condition DO
    statement list
    END WHILE [end label]
    1
    2
    3
    其中,search_condition 参数表示循环执行的条件,满足该条件时循环执行;statement_list 参数表示循环的执行语句。WHILE 循环需要使用 END WHILE 来结束。

    使用
    whil循环的使用不能像在java中那样直接使用 ,需要结合Mysq中的流程控制语句来使用,
    关键字是:procedure
    举个例子:有1020个西瓜,第一天卖掉总数的一半后又多卖出两个,以后每天卖剩下的一半多两个,问几天以后能卖完?

    CREATE PROCEDURE p()
    BEGIN
    SET @sum:=1024;
    SET @num:=1024;
    SET @i:=0;
    WHILE @num>0 DO
    SET @num:=@num/2-2;
    SET @i:=@i+1;
    END WHILE;
    SELECT @i;
    END@@
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    通过call p()进行查询,注意设置的结束语句修饰符
    我们在这里用的是无参的方法,即p();同样也可以进行有参的写法:
    首先介绍一下参数的传递:

    create procedure p([in/out/inout]参数名 参数类型)

    in:该参数可以作为输入,也就是需要调用方法传入值,默认
    out:该参数可作为输出,即该参数可以作为返回值
    Inout:既可以作为输入参数,也可以作为输出参数
    在举个例子:
    从控制台输入一个正整数,计算该数的阶乘。例如输入5,阶乘为 54321
    CREATE PROCEDURE p1(IN num INT(11))
    BEGIN
    SET @sum:=num;
    WHILE @sum>1 DO
    SET @sum:=@sum-1;
    SET num=num*@sum;
    END WHILE;
    SELECT num;
    END@@
    1
    2
    3
    4
    5
    6
    7
    8
    9
    此时,我们可以通过
    call p1(5)来完成对5的阶乘,
    输出结果


    删除存储过程:
    sql语句:
    drop procedure 存储过程名
    ————————————————
    版权声明:本文为CSDN博主「小五家的二哈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_43012693/article/details/108113810

  • 相关阅读:
    sessionId控制单点登陆
    验证码的编写
    关于selectpicker的多选问题
    java的excel表格的导出与下载
    SpringMVC的乱码问题
    乱码的解决问题
    layui select下拉框监听值变化 layui 下拉列表的change事件
    RabbitMQ在Ubuntu上的环境搭建
    JAVA中 redisTemplate 和 jedis的配合使用
    优化JAVA查询Mongodb数量过大,查询熟读慢的方法
  • 原文地址:https://www.cnblogs.com/gina11/p/15493792.html
Copyright © 2020-2023  润新知