是在什么之间的区别
set test_var = 20;
和
set test_var:=20;
因为他们似乎都赋值 ?
是在什么之间的区别
set test_var = 20;
和
set test_var:=20;
因为他们似乎都赋值 ?
他们两人都是赋值运算符 ,但有一点我可以找到他们之间的分歧是=
可用于执行布尔操作,而:=
不能。
有效 :SUM(VAL = 0)
无效:SUM(VAL:= 0)
根据用户定义的变量
还有一件事, 你也可以一个值比其他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 |
+------+------+------+--------------------+
这或多或少句法糖。
看看这里
最重要的区别
不像=,则:=操作者从来没有解释为比较运算符。 这意味着您可以使用:在任何有效的SQL语句=(不只是在SET语句)的值赋给一个变量。
您只能使用:=用于分配 - 从未进行比较。 这只是有点语法糖,它并没有真正改变的功能都没有。 你会看到很多从代码生成的SQL。