WEB开发网
开发学院数据库MySQL MySQL 5.0 新特性教程 存储过程:第三讲 阅读

MySQL 5.0 新特性教程 存储过程:第三讲

 2007-11-11 15:26:43 来源:WEB开发网   
核心提示: CASE 指令1.CREATE PROCEDURE p13 (IN parameter1 INT)BEGINDECLARE variable1 INT;SET variable1 = parameter1 + 1;CASE variable1WHEN 0 THEN INSERT INTO t VALUES (17);

CASE 指令

  1.

CREATE PROCEDURE p13 (IN parameter1 INT)

BEGIN

DECLARE variable1 INT;

SET variable1 = parameter1 + 1;

CASE variable1

WHEN 0 THEN INSERT INTO t VALUES (17);

WHEN 1 THEN INSERT INTO t VALUES (18);

ELSE INSERT INTO t VALUES (19);

END CASE;

END; //


  如果需要进行更多条件真假的判断我们可以使用CASE语句。CASE语句使用和IF一样简单。

  我们可以参考上面的例子:
2.

MySQL(和PHP搭配之最佳组合)> CALL p13(1)//

Query OK, 1 row affected (0.00 sec)

MySQL(和PHP搭配之最佳组合)> SELECT * FROM t//

+------+

| s1 |

+------+

| 6 |

| 6 |

| 19 |

+------+

3 rows in set (0.00 sec)


  执行过程后,传入值1,如上面例子,值19被插入到表t中。

  Question

  问题

  问题: CALL p13(NULL) //的作用是什么?

  另一个:这个CALL语句做了那些动作?

  你可以通过执行后观察SELECT做了什么,也可以根据代码判断,在5秒内做出。
Answer

  答案

MySQL(和PHP搭配之最佳组合)> CALL p13(NULL)//

Query OK, 1 row affected (0.00 sec)

MySQL(和PHP搭配之最佳组合)> SELECT * FROM t//

+------+

| s1 |

+------+

| 6 |

| 6 |

| 19 |

| 19 |

+------+

4 rows in set (0.00 sec)


  答案是当你调用p13时,MySQL(和PHP搭配之最佳组合)插入了另一条包含数值19的记录。原因是变量variable1的值为NULL,CASE语句的ELSE部分就被执行了。希望这对大家有意义。如果你回答不出来,没有问题,我们可以继续向下走。

上一页  1 2 3 4 5 6  下一页

Tags:MySQL 特性 教程

编辑录入:coldstar [复制链接] [打 印]
赞助商链接