用select...into語句
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網綜合服務,包含不限于網站設計、成都做網站、陵城網絡推廣、微信小程序定制開發(fā)、陵城網絡營銷、陵城企業(yè)策劃、陵城品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學生創(chuàng)業(yè)者提供陵城建站搭建服務,24小時服務熱線:13518219792,官方網址:www.cdcxhl.com
下面是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當前把參考解釋為一個變量的名字。例如,在下面的語句中,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存儲過程查詢結果賦值到變量的方法
把查詢結果賦值到變量,大部分情況下使用游標來完成,但是如果明確知道查詢結果只有一行(例如統(tǒng)計記錄的數(shù)量,某個字段求和等),其實可以使用set或into的方式來實現(xiàn)賦值。示例代碼:
drop table if exists test_tbl;
create table test_tbl (name varchar(20), status int(2));
insert into test_tbl values('abc', 1),('edf', 2),('xyz', 3);
drop procedure IF EXISTS pro_test_3;
delimiter //
create procedure pro_test_3()
begin
DECLARE cnt INT DEFAULT 0;
select count(*) into cnt from test_tbl;
select cnt;
-- 多個列的情況下似乎只能用 into 方式
select max(status), avg(status) into @max, @avg from test_tbl;
select @max, @avg;
end
delimiter ;
call pro_test_3();
mysql給字符串變量賦值的方法是用select into 變量結構完成賦值。
使用sql的結構語法:
SELECT ... INTO var_list selects column values and stores them into variables.
比如定義一個sql變量:
@x varchar(10);
@y varchar(20);
select id,name INTO @x,@y from dx_tt
這樣就完成了賦值。
DECLARE PRIMARY_KEY VARCHAR(100);
SET PRIMARY_KEY = group_concat(NEW.USER_ID,NEW.ROLE_NAME);
查詢語句是這樣寫的:
select group_concat(NEW.USER_ID,NEW.ROLE_NAME)from NEW where 條件;
SELECT group_concat(NEW.USER_ID,NEW.ROLE_NAME separator '連接字符') FROM NEW where 條件;