当前位置 博文首页 > 文章内容

    MySQL中的流程控制

    作者: 栏目:未分类 时间:2020-07-20 18:01:52

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    使用 if、case、loop、leave、iterate、repeat、while  语句来控制流程。

    1、if 语句

                IF i_staff_id =2 THEN
                     SET @x1 = @x1 + d_amont;
                ELSE
                    set @x2 = @x2 +d_amount;
                end if;

     

    2、case 语句

    CASE 
        WHEN i_staff_id = 2 THEN
            set @x1 = @x1 + d_amount
        ELSE
            set @x2 = @x2 + d_amount
    END CASE;

    或者

    CASE i_staff_id 
        WHEN 2 THEN
            set @x1 = @x1 + d_amount
        ELSE
            set @x2 = @x2 + d_amount
    END CASE;

     

    3、loop 语句(通常和 leave 语句一起使用)

    4、leave 语句

    CREATE PROCEDURE actor_insert ( ) BEGIN
        
        SET @x = 0;
        ins :LOOP   
            SET @x = @x + 1
            IF
                @x = 100 THEN
            LEAVE ins;
                
            END IF;
            INSERT INTO actor ( first_name, last_name )
            VALUES( 'Test', '201' );
            
        END LOOP label;
    
    END;
    call actor_insert();
    select count(*) from actor where first_name='Test'

     

    5、iterate 语句

    CREATE PROCEDURE actor_insert() BEGIN
        
        SET @x = 0;
        ins :LOOP
                
            SET @x = @x + 1;
            IF @x = 10 THEN
            LEAVE ins;
                
            END IF;
            INSERT INTO actor ( actor_id, first_name, last_name )
            VALUES( @x + 200, 'Test', @x );
            
        END LOOP ins;
    
    END;
    call actor_insert();
    select actor_id,first_name,last_name from actor where first_name='Test';

     

    6、REPATE 语句

        REPEAT
        FETCH cur_payment INTO i_staff_id, d_amount;
          if i_staff_id =2 THEN
                    SET @x1 = @x1 + d_amont;
                ELSE
                    set @x2 = @x2 +d_amount;
                end if;
        
        UNTIL 0 END REPEAT;

     

    7、while 语句

    CREATE PROCEDURE loop_demo() BEGIN
        
        SET @x = 1,@x1 = 1;
        REPEAT
                
                SET @x = @x + 1;
        UNTIL @x > 0 END REPEAT;
        WHILE @x < 0 DO
                
                SET @x1 = @x1 + 1;
            
        END WHILE;
    
    END;
    call loop_demo();