在MySQL中,用户变量是一种在会话级别存储和重用值的方式,它们以@符号开头。用户变量可以在查询中用来存储和传递数据,增强SQL脚本的功能性。
定义和赋值用户变量用户变量可以直接在查询中定义并赋值,不需要预先声明。赋值可以使用SET语句或SELECT语句完成。使用SET语句
SET @myVar = 10; -- 赋予整数值
SET @message = 'Hello, World!'; -- 赋予字符串值
SET @today = CURRENT_DATE(); -- 赋予当前日期
SELECT @sum := SUM(column_name) FROM table_name; -- 计算某列总和并赋值给@sum
SELECT @last_id := LAST_INSERT_ID(); -- 获取最近插入行的自增ID并赋值
滚动递减赋值
set @points2 =: 3369;
select 100,1,-1,@points2,@points2=(@points2-1),sddm,sdmc, yxrq - INTERVAL 1 YEAR,yxrq ,create_time,create_by
from sys_sqsd
where tenant_id=100
order by yxrq asc
注意事项
用户变量的作用范围局限于创建它们的会话。当会话结束时,这些变量就会消失。
在同一查询中,用户变量的赋值和使用顺序很重要,因为MySQL是从左到右解析查询的。
当在SELECT语句中同时定义和使用用户变量时,需要注意MySQL的执行顺序可能会导致意料之外的结果,尤其是在涉及到多行处理时。
使用用户变量可以提高复杂查询的可读性和灵活性,但过度依赖它们可能导致代码难以理解和维护。