用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’。
用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’。