例子,mysql中使用set语句声明变量。
mysql>
SET syntax uses = rather than := to assign the value:
mysql>
mysql>
mysql> SET @sum = 4 + 7;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @sum;
+------+
| @sum |
+------+
| 11 |
+------+
1 row in set (0.00 sec)
附,mysql 存储过程中 declare set 变量区别。
mysql 中有一种叫 session variables,即会话变量,这是其中的一种变量。
这种变量是以 @ 为标志的变量,例如: @var (www.jb200.com 脚本学堂)
这种是弱类型的变量,可以在一个会话的任何地方声明,并且在整个会话内有效。
另外一种变量以 DECLARE 关键字声明的变量,只能在存储过程中使用(下面称作“存储过程变量”),例如:
DECLARE var1 INT DEFAULT 0;
主要用在存储过程中,或者是给存储传参数中。
二者区别:
在调用存储过程时,存储过程变量(就是以 DECLARE
声明的变量)都会被初始化为 NULL ;而会话变量(即 set @var=1 这一类的变量)则不会被再初始化,在一个会话内,只须初始化一次,之后在会话内都是对上一次计算的结果,就相当于在是这个会话内的全局变量。