@的作用
使用SET直接赋值变量,变量名以 @ 开头:如:SET @var=1;
@是用户变量可以在一个会话(一个连接)的任何地方声明,作用域是整个会话,随会话关闭而消失;
示例:设置–> SELECT @op = ‘2021-08-17’;
使用–>
SELECT * FROM statistic_app_nft_sell WHERE createDay = @op; 查询–>SELECT @op FROM DUAL;
@@是系统变量可以在任何会话地方声明,作用域是当前运行mysql程序,随重启mysql而消失;
示例:如上多维度GROUP BY的时候使用的设置全局变量(也可以写:
SELECT GLOBAL @@sql_mode = ‘xxx’,查询–>SELECT @@sql_mode FROM DUAL;
@的作用
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