MySQL 存储过程以返回一个列值?
我们首先创建一个表 −
mysql> create table DemoTable -> ( -> Id int, -> Score int -> ); Query OK, 0 rows affected (0.69 sec)
使用 insert 命令在表中插入一些记录 −
mysql> insert into DemoTable values(1,858858686); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(2,9900554); Query OK, 1 row affected (0.22 sec) mysql> insert into DemoTable values(3,646565667); Query OK, 1 row affected (0.15 sec)
使用 select 语句显示表中的所有记录 −
mysql> select *from DemoTable;
输出
这将产生以下输出 −
+------+-----------+ | Id | Score | +------+-----------+ | 1 | 858858686 | | 2 | 9900554 | | 3 | 646565667 | +------+-----------+ 3 rows in set (0.00 sec)
以下是 MySQL 存储过程 −
mysql> DELIMITER // mysql> CREATE PROCEDURE Test_StoredProcedure(in id INT, OUT scoreValue INT) -> BEGIN -> SELECT Score -> INTO scoreValue -> FROM DemoTable tbl -> WHERE tbl.Id = id; -> END -> // Query OK, 0 rows affected (0.18 sec) mysql> DELIMITER ;
现在,借助 call 命令调用存储过程,并将输出存储到名为“@result”的变量中 −
mysql> call Test_StoredProcedure(2,@result); Query OK, 1 row affected (0.00 sec)
现在使用 select 语句显示变量值 −
mysql> select @result;
输出
这将产生以下输出 −
+---------+ | @result | +---------+ | 9900554 | +---------+ 1 row in set (0.00 sec)
广告