Mysql @和@@符号使用
不甘于平凡的溃败 人气:0一、概述
@是用户变量,@@是系统变量。
select @a;
变量名,如果你不加的话,会认为这是一个列名,但是这列不存在,就报错了;
@变量名 : 定义一个用户变量.
= 对该用户变量进行赋值.
用户变量赋值有两种方式: 一种是直接用"=“号,另一种是用”:=“号。
其区别在于:
使用set命令对用户变量进行赋值时,两种方式都可以使用;
用select语句时,只能用”:=“方式,因为select语句中,”="号被看作是比较操作符。
(@i:=@i+1)
可以在生成查询结果表的时候生成一组递增的序列号
select (@i:=@i+5) as rownum, surname, personal_name from student, (select @i:=100) as init; select @ids := ‘101', @l := 0 GROUP_CONCAT + group by
按照分组,连接字段上的数据,默认以,,也可以指定分割符
二、使用语法及实践 用户自定义变量
1、用户定义变量语法
SET @var_name = expr [, @var_name = expr]
如:set @t1 =100;
2、获取用户定义变量值方式,如:
select @t1 from dual;
如下图
系统变量
1、查看全部系统变量指令
SHOW GLOBAL VARIABLES
2、查看单个系统变量
SHOW GLOBAL VARIABLES LIKE 'wait_timeout'
3、设置系统变量语法
SET GLOBAL 变量名 = 变量值
如:SET GLOBAL wait_timeout = 604800;
注:如果修改变量值后没有生效,请退出从新再试下 。
4、获取系统变量值的语法
select @@wait_timeout from dual;
补充:MySQL的@与@@区别
@x 是 用户自定义的变量 (User variables are written as @var_name)
@@x 是 global或session变量 (@@global @@session )
@@查看全局变量:
select @@log_error;
总结
加载全部内容