对于SET,=或:=都是一样的,表示赋值。
但是在没有SET的情况下,=检测两个值是否相等,而:=仍表示赋值。
例:
mysql> SET @t1=1, @t2=2, @t3:=4;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @t1, @t2, @t3, @t4 := @t1+@t2+@t3;
+------+------+------+--------------------+
| @t1 | @t2 | @t3 | @t4 := @t1+@t2+@t3 |
+------+------+------+--------------------+
| 1 | 2 | 4 | 7 |
+------+------+------+--------------------+
1 row in set (0.00 sec)
mysql> SELECT @t1, @t2, @t3, @t4 = @t1+@t2+@t3;
+------+------+------+-------------------+
| @t1 | @t2 | @t3 | @t4 = @t1+@t2+@t3 |
+------+------+------+-------------------+
| 1 | 2 | 4 | 1 |
+------+------+------+-------------------+
1 row in set (0.00 sec)
mysql> select @t4;
+------+
| @t4 |
+------+
| 7 |
+------+