mysql进:在存储过程中用select如何给变量赋值

2024-04-21 13:30:52
mysql进:在存储过程中用select如何给变量赋值求高手给解答
写回答

最佳答案

存储过程是针对库的,通过一段代码,对这个库进行一些操作,具体代码格式如下:

r 存储过程内为变量赋值:

r 存储过程体为

r 存储过程的参数:

r 三种类型:IN/OUT/INOUT,这三种类型IN是传入类参数,存储过程体内可以用,OUT是可以给外部变量设置值,INOUT是具有两者的功能

r OUT

2024-04-21 13:30:52
赞 4705踩 0

全部回答(2)

用select...into语句

下面是mysql 5.0的帮助文档的:

这个SELECT语法把选定的列直接存储到变量。因此,只有单一的行可以被取回。

SELECT id,data INTO x,y FROM test.t1 LIMIT 1;

注意,用户变量名在MySQL 5.1中是对大小写不敏感的。请参阅9.3节,“用户变量”。

重要: SQL变量名不能和列名一样。如果SELECT ... INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的局部变量,MySQL当前把参考解释为一个变量的名字。例如,在下面的语句中,xname 被解释为到xname variable 的参考而不是到xname column的:

CREATE PROCEDURE sp1 (x VARCHAR(5))

BEGIN

DECLARE xname VARCHAR(5) DEFAULT 'bob';

DECLARE newname VARCHAR(5);

DECLARE xid INT;

SELECT xname,id INTO newname,xid

FROM table1 WHERE xname = xname;

SELECT newname;

END;

当这个程序被调用的时候,无论table.xname列的值是什么,变量newname将返回值‘bob’。

2024-04-21 13:30:52
赞 653踩 0