mysql> set @num := 1;
Query OK, 0 rows affected (0.00 sec)
mysql> set @num = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> select @num;
+------+
| @num |
+------+
| 0 |
+------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
似乎两个都有效.
简而言之,在使用时SET它们都充当赋值运算符,但在任何非设置语句中,:=用于赋值并=检查相等性。
对于 SET,= 或 := 都可以用作赋值运算符。
您还可以在 SET 以外的语句中为用户变量赋值。在这种情况下,赋值运算符必须是 := 而不是 =,因为 = 在非 SET 语句中被视为比较运算符
mysql> SET @t1=1, @t2=2, @t3:=4;
mysql> SELECT @t1, @t2, @t3, @t4 := @t1+@t2+@t3;
+------+------+------+--------------------+
| @t1 | @t2 | @t3 | @t4 := @t1+@t2+@t3 |
+------+------+------+--------------------+
| 1 | 2 | 4 | 7 |
+------+------+------+--------------------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |