天天看點

mysql 中變量的使用

本文主要是介紹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;

繼續閱讀