mysql定義變量并賦值 mysql進:在存儲過程中用select如何給變量賦值?
mysql進:在存儲過程中用select如何給變量賦值?存儲過程是針對庫的,通過一段代碼,對這個庫進行一些操作,具體代碼格式如下: 對變量進行賦值: 存儲過程內(nèi)定義變量: 存儲過程內(nèi)為變量賦值:
mysql進:在存儲過程中用select如何給變量賦值?
存儲過程是針對庫的,通過一段代碼,對這個庫進行一些操作,具體代碼格式如下:
對變量進行賦值: 存儲過程內(nèi)定義變量: 存儲過程內(nèi)為變量賦值: 存儲過程體為 存儲過程實例 存儲過程的參數(shù): 三種類型:IN/OUT/INOUT,這三種類型IN是傳入類參數(shù),存儲過程體內(nèi)可以用,OUT是可以給外部變量設(shè)置值,INOUT是具有兩者的功能 OUT INOUT 查詢存儲過程: 例如: 刪除存儲過程用 MySQL存儲過程的條件語句: if-else-then 例如: case語句 例如: 或者: while-end while語句: 例如:mysql存儲過程中變量的定義與賦值操作?
declare為對變量進行聲明,聲明必須制定變量的數(shù)據(jù)類型,只能寫在過程的前面set是對變量賦值,可以放在過程的任何地方對沒有declare聲明過的變量賦值,該變量必須以加上@號,否則會報錯DECLARE a INT -- 如果放在下面語句之后,會報錯SET a = (SELECT id FROM tb) -- 如果沒有前面的聲明,會報錯SET @b = (SELECT title FROM tb)
mysql進:在存儲過程中用select如何給變量賦值?
用select...into語句
下面是mysql 5.0的幫助文檔的:
這個SELECT語法把選定的列直接存儲到變量。因此,只有單一的行可以被取回。
SELECT id,data INTO x,y FROM test.t1 LIMIT 1
注意,用戶變量名在MySQL 5.1中是對大小寫不敏感的。請參閱9.3節(jié),“用戶變量”。
重要: SQL變量名不能和列名一樣。如果SELECT ... INTO這樣的SQL語句包含一個對列的參考,并包含一個與列相同名字的局部變量,MySQL當(dāng)前把參考解釋為一個變量的名字。例如,在下面的語句中,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
當(dāng)這個程序被調(diào)用的時候,無論table.xname列的值是什么,變量newname將返回值‘bob’。