Tous deux sont des opérateurs d'affectation mais une chose que je peux trouver leurs différences est que =
peut être utilisé pour effectuer une opération booléenne tandis que :=
ne peut pas.
valide :SOMME(val =0)
Non valide :SOMME(val :=0)
DES Variables définies par l'utilisateur
Encore une chose, Vous pouvez également affecter une valeur à une variable utilisateur dans des instructions autres que SET. Dans ce cas, l'opérateur d'affectation doit être :=et non =car ce dernier est traité comme l'opérateur de comparaison =dans les instructions non SET.
mysql> SET @t1=1, @t2=2, @t3:=4;
mysql> SELECT @t1, @t2, @t3, @t4 := @[email protected][email protected];
+------+------+------+--------------------+
| @t1 | @t2 | @t3 | @t4 := @[email protected][email protected] |
+------+------+------+--------------------+
| 1 | 2 | 4 | 7 |
+------+------+------+--------------------+