在 MySQL 中,用户变量的作用范围是会话级别(session level)。
也就是说,当一个会话(session)结束时,用户变量的值会被清除。但是,如果是在同一个会话中执行多个查询,并且在这些查询之间保持会话处于活动状态,用户变量的值会在会话中保持不变。
SET @rank=0;
设置了一个用户变量 @rank
的初始值为 0,并且在接下来的查询语句中使用了这个变量。
- 如果这些查询是在同一个会话中依次执行的,并且没有中断会话,则变量
@rank
的值会一直保持,直到会话结束。 - 在会话中,如果执行了
SET @rank=1;
命令,它会重置用户变量@rank
的值为 1。无论之前@rank
的值是多少,在执行该命令后,它都会被设置为 1。