2013-03-25 22 views

Odpowiedz

8

Obaj są operatory przypisania ale jedno mogę znaleźć ich różnic jest to, że = może być stosowany do wykonywania logiczną operację := nie może.

ważny: SUM (val = 0)
Nieprawidłowy: SUM (val: = 0)

FROM User-Defined Variables

Jeszcze jedno, Można również przypisać wartość do zmiennej użytkownika w instrukcje inne niż SET. W tym przypadku operator przypisania musi być: = i nie =, ponieważ ten drugi jest traktowany jako operator porównania = w instrukcjach innych niż 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 | 
+------+------+------+--------------------+ 
8

Jest to bardziej lub mniej cukru syntaktyczna.

Spójrz here

Najważniejszą różnicą jest

przeciwieństwie = The: = operator nie jest interpretowany jako operator porównania . Oznacza to, że możesz użyć: = w dowolnej poprawnej instrukcji SQL (nie tylko w instrukcjach SET), aby przypisać wartość do zmiennej.

1

można używać tylko: = dla przypisania - nie do porównania. To tylko trochę syntaktycznego cukru, tak naprawdę nie zmienia to w ogóle funkcjonalności. Przekonasz się o tym dużo w wygenerowanym kodzie SQL.

+1

Dang, wszyscy mnie do tego biją. Hah. – antinescience

Powiązane problemy