①可以直接把sql语句的运行结果赋值给变量:

MySQL自定义变量的使用_MySQL

 ②可以将表达式计算后的结果赋值给变量:(mybatis中不支持这种写法

MySQL自定义变量的使用_MySQL_02

 自定义变量的限制:

①无法使用查询缓存;

②不能在使用常量或者标识符的地方使用自定义变量,例如表名、列名或者limit字句;

③用户自定义变量的生命周期是在一个连接中有效,所以不能用它们来做连接间的通信;

④不能显式地声明自定义变量的类型;

⑤MySQL优化器在某些场景下可能会将这些变量优化掉,这可能导致代码不能按预料的方式运行;

⑥赋值符号:=的优先级非常低,所以在使用赋值表达式的时候应该明确地使用括号;

⑦使用自定义变量不会产生任何语法错误。