聘我网

新概念招聘3.0

MySQL中=与:=有什么区别?

vote up0vote downstar
mysql> set @num := 1;
Query OK, 0 rows affected (0.00 sec)

mysql> select @num;
+------+
| @num |
+------+
|    1 |
+------+
1 row in set (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)

好像效果没有不同?

 

1 个答复

vote up0vote downcheck

对于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 |
+------+
链接

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.