И двата са оператори за присвояване но едно нещо, което мога да открия разликите им е, че =
може да се използва за извършване на булева операция, докато :=
не може.
валиден :SUM(val =0)
Невалидно:SUM(val :=0)
ОТ дефинирани от потребителя променливи
Още нещо, Можете също да присвоите стойност на потребителска променлива в изрази, различни от SET. В този случай операторът за присвояване трябва да бъде :=, а не =, тъй като последният се третира като оператор за сравнение =в не-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 |
+------+------+------+--------------------+