天天看点

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;

继续阅读