本文主要是介紹mysql中變量的使用,包括使用者變量,全局,會話還有局部變量。本文内容主要參考自mysql使用者手冊和相關連結。
1. 使用者變量: (本次連接配接有效)
定義方式 set @變量名:=值 或 set @變量名=值 或 select 中@變量名:=值
例子:set @a:=5 或 [email protected]=3 或 select @a:=sum(c1) from A;
備注: 使用使用者變量将阻止查詢使用緩存
未初始化的使用者變量會被系統初始化為 string的null
可以通過使用使用者變量在關系型資料庫語句中實作過程話邏輯 , (參考自:http://www.mysqldiary.com/user-defined-variables/)
例如,下面的sql查詢實作了user_value的累加:
select user-id, user-value, @x:=if(@same_value=user_id, @x+user_value, 1) as num, @same_value:=user_id as dummy
from users, (selec @x:=0, @same_value:='') t
order by user_id
2. 全局變量:(全局有效)
定義方式 set[global] 變量名=值, set @@[global] 變量名=值
例子: set @@var =5
3. 局部變量:(隻在目前begin...end塊中有效)
定義方式 declare 變量名 類型
指派方式 set 變量名 =值
例子: declare a int;
set a = 5;