mysql procedure存储过程循环,条件判断实例

mysql教程 procedure存储过程循环,条件判断实例

 

mysql> delimiter $$
mysql> CREATE PROCEDURE myProc()
    -> DETERMINISTIC
    -> BEGIN
    ->   DECLARE counter INT DEFAULT 0;
    ->
    ->   simple_loop: LOOP
    ->     SET counter=counter+1;
    ->     select counter;
    ->     IF counter=10 THEN
    ->        LEAVE simple_loop;
    ->     END IF;
    ->   END LOOP simple_loop;
    ->   SELECT 'I can count to 10';
    -> END$$
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> delimiter ;
mysql>
mysql> call myProc();
+---------+
| counter |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)

+---------+
| counter |
+---------+
|       2 |
+---------+
1 row in set (0.02 sec)

+---------+
| counter |
+---------+
|       3 |
+---------+
1 row in set (0.02 sec)

+---------+
| counter |
+---------+
|       4 |
+---------+
1 row in set (0.02 sec)

+---------+
| counter |
+---------+
|       5 |
+---------+
1 row in set (0.02 sec)

+---------+
| counter |
+---------+
|       6 |
+---------+
1 row in set (0.02 sec)

+---------+
| counter |
+---------+
|       7 |
+---------+
1 row in set (0.02 sec)

+---------+
| counter |
+---------+
|       8 |
+---------+
1 row in set (0.02 sec)

+---------+
| counter |
+---------+
|       9 |
+---------+
1 row in set (0.33 sec)

+---------+
| counter |
+---------+
|      10 |
+---------+
1 row in set (0.33 sec)

+-------------------+
| I can count to 10 |
+-------------------+
| I can count to 10 |
+-------------------+
1 row in set (0.33 sec)

Query OK, 0 rows affected (0.33 sec)

实例二

mysql> CREATE PROCEDURE myProc()
    -> BEGIN
    ->     DECLARE i int;
    ->     SET i=1;
    ->     myloop: LOOP
    ->          SET i=i+1;
    ->          IF i=10 THEN
    ->                   LEAVE myloop;
    ->          END IF;
    ->     END LOOP myloop;
    ->     SELECT 'I can count to 10';
    ->
    -> END$$
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> delimiter ;
mysql>
mysql> call myProc();
+-------------------+
| I can count to 10 |
+-------------------+
| I can count to 10 |
+-------------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec

带有条件

mysql> create procedure increment (IN in_count INT)
    -> BEGIN
    -> declare count INT default 0;
    ->
    ->     increment: loop
    ->         set count = count + 1;
    ->         if count < 20 then
    ->             iterate increment;
    ->         end if;
    ->         if count > in_count then
    ->             leave increment;
    ->         end if;
    ->     end loop increment;
    ->     select count;
    -> END
    -> //
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> delimiter ;
mysql> call increment(3);
+-------+
| count |
+-------+
|    20 |
+-------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

时间: 2024-10-24 19:24:48

mysql procedure存储过程循环,条件判断实例的相关文章

mysql数据库利用procedure存储过程实现条件判断代码实例

mysql> delimiter $$     mysql> CREATE PROCEDURE myProc()         -> DETERMINISTIC         -> BEGIN         ->   DECLARE counter INT DEFAULT 0;         ->         ->   simple_loop: LOOP         ->     SET counter=counter+1;        

mysql用存储过程循环截取用户信息并插入到目标表对应的字段实例

操作环境:有表game_list,字段:uid,score1,score2,seat_id,last_update: 传入参数为i_player_detail ,传入的值为多个用户的id.之前分数.之后分数.座位号,每个用户的数据用分号(:)隔开: 操作目的:将各个用户对应的属性插入到目标表对应的字段中,last_update为数据更新日期: 传入参数i_player_detail ,里面存放多个用户的信息,每个用户的一组数据用分号隔开,每个用户的信息多个,比如 "用户id,score,desk

循环条件判断-如何判断输入时是不是数字(输入是非数字或者输入为负数则跳出while循环)

问题描述 如何判断输入时是不是数字(输入是非数字或者输入为负数则跳出while循环) C++中cctype头文件中的isdigit()函数如果参数是0~9,则函数返回true,这个函数只能判断是个数么?如果我要判断两位数.三位数......还能用么? while(cin>>num) 其中num为整形变量,其中括号中的语句可以判断输入是不是数字?是怎么样的原理? 还有其他方法么?ASCII怎么用呢? 解决方案 cin>>num肯定是数字 while (cin>>num)

循环条件判断-新手菜鸟求助,关于判断和循环的delphi

问题描述 新手菜鸟求助,关于判断和循环的delphi 我想生成一组随机字符串,然后有一个字符串数组,判断该数组内字符是否都在随机生成的字符串中,若都不在该字符串中,输出随机生成的字符串 解决方案 遍历数组,然后判断每一个数组元素是否在随机字符串中,

mysql数据库条件判断查询语句的常见写法说明

大家都知道只有的了mysql 5后才出现了存储过程,这些用法,那么我们要在sql 中用if else while这些,就得用存过程或函数来实例了. mysql> DELIMITER // mysql> CREATE FUNCTION myFunction (quantity INT(10)) RETURNS INT(10)     -> BEGIN     ->     ->     WHILE quantity MOD 12 > 0 DO     ->    

MySql存储过程 创建删除与实例

mysql教程存储过程是带参数的存储过程(动态执行sql语句),该mysql存储过程是根据用户输入的条件和排序方式查询用户的信息,排序条件可以没有调用方式: mysql 5.0 新特性教程是为需要了解5.0版本新特性的mysql老用户而写的.简单的来说是介绍了"存储过程.触发器.视图.信息架构视图",   call getusersdynamic('age<=30','');   /********动态查询用户的信息********/    create procedure ge

mysql存储过程循环只执行一次

问题描述 mysql存储过程循环只执行一次 下面是存储过程主体,问题是无论怎么跑,貌似里面的两个循环都只会执行一次.好困惑.请sql大神解救 BEGINDECLARE stop_flag INT DEFAULT 0;DECLARE captain VARCHAR(500);DECLARE captain1 VARCHAR(500);DECLARE captain2 VARCHAR(500);declare captainstaffno1 varchar(32);declare captainst

Mysql存储过程中游标的用法实例_Mysql

本文实例讲述了Mysql存储过程中游标的用法.分享给大家供大家参考.具体如下: 1. 批量插入商户路由关联数据: DELIMITER $$ USE `mmm_mac`$$ DROP PROCEDURE IF EXISTS `批量插入商户路由关联数据`$$ CREATE DEFINER=`root`@`%` PROCEDURE `批量插入商户路由关联数据`() BEGIN DECLARE v_partner_no VARCHAR(32); DECLARE v_partner_id INT(11);

Oracle存储过程循环语法实例分析_oracle

本文实例讲述了Oracle存储过程循环语法.分享给大家供大家参考,具体如下: 1.简单循环 语法 loop statements; end loop; 例子: counter := 0; loop counter := counter + 1; exit when counter = 5; end loop; 备注:exit语句立即结束循环,exit when 语句在指定条件出现时停止循环(可以出现在循环代码中的任意位置) 2.while循环 语法 while condition loop st