Home > Database > Mysql Tutorial > mysql procedure存储过程循环,条件判断范例

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

WBOY
Release: 2016-06-07 16:24:07
Original
1135 people have browsed it

mysql procedure存储过程循环,条件判断实例 本文转载自:???? http://www.111cn.net/database/mysql/38878.htm ? ? mysql教程 procedure存储过程循环,条件判断实例 ? mysql delimiter $$ mysql CREATE PROCEDURE myProc() ??? - DETERMINISTIC ??? - BEGIN ?

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

本文转载自:???? http://www.111cn.net/database/mysql/38878.htm

?

?

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 ??? ->???????????? 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)

?

?

?

?

?

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template