是什么=之间的区别:在MySQL =?(What is the difference between

2019-08-17 23:31发布

是在什么之间的区别

set test_var = 20;

set test_var:=20;

因为他们似乎都赋值

Answer 1:

他们两人都是赋值运算符 ,但有一点我可以找到他们之间的分歧是=可用于执行布尔操作,而:=不能。

有效 :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 | 
+------+------+------+--------------------+


Answer 2:

这或多或少句法糖。

看看这里

最重要的区别

不像=,则:=操作者从来没有解释为比较运算符。 这意味着您可以使用:在任何有效的SQL语句=(不只是在SET语句)的值赋给一个变量。



Answer 3:

您只能使用:=用于分配 - 从未进行比较。 这只是有点语法糖,它并没有真正改变的功能都没有。 你会看到很多从代码生成的SQL。



文章来源: What is the difference between = and := in MySQL?