mysql進在儲存過程中用select如何給變數賦值

2021-10-05 03:07:33 字數 1402 閱讀 3152

1樓:叫我大麗水手

用select...into語句。

這個select語法把選定的列直接儲存到變數。因此,只有單一的行可以被取回。

重要:

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』。

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』。

mysql將儲存過程執行後的值賦值給變數

mysql儲存過程引數能放到sql語句最後面嗎

不可以delimeter create procedure pro latest in num int begin set n num prepare sqlstring from select from product order by timestamp desc limit execute s...

mysql儲存過程支援用表作為引數嗎

這個問題在mysql 以前非常麻煩,但是在mysql 版之後,由於引入了prepare語句,一切變得簡單了。例子如下 已驗證 drop procedure if exists newtable create procedure newtable in tname varchar 64 beginse...

各位我來作個調查 你追女孩過程中用了多少錢

我男朋友是個會過日子型的人,但是呢他對他的愛好卻是很捨得,出去旅遊從來都是沒有心疼花錢過,一般不會主動為我買衣服和貴重的東西,但是每次看到朋友的男朋友為朋友買或者是給朋友突然的驚喜我很羨慕,就覺得朋友好幸福男朋友這麼疼愛他,所以我就會和自己的男朋友提,我想要他的關心其實無所謂什麼值錢的東西,要是真的...