2013-03-25 45 views

cevap

8

İkisi atama operatörleri ama aralarındaki farklılıkları bulabilen bir şey = ise := olamaz boolean işlemi gerçekleştirmek için kullanılabilir olmasıdır vardır.

geçerli: SUM (val = 0)
Geçersiz: SUM (val: = 0)

FROM User-Defined Variables

Bir şey daha, Ayrıca kullanıcı değişkeni için bir değer atayabilirsiniz SET dışındaki ifadeler. Bu durumda, atama operatörü: = ve değil = olmalıdır çünkü ikincisi karşılaştırma işleci olarak = SET olmayan deyimler olarak kabul edilir.

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

Daha çok veya daha az Syntaktik şeker.

, here

En önemli fark = aksine

olan bir göz atın: = operatörü bir karşılaştırma operatörü olarak yorumlanır asla. Bu, aşağıdakileri kullanabileceğiniz anlamına gelir: = bir değişkene değer atamak için herhangi bir geçerli SQL deyiminde (yalnızca SET deyimlerinde değil ). Bunlardan

1

Yalnızca kullanabilirsiniz: = atama için - asla karşılaştırma için. Bu sadece sözdizimsel şekerden ibaret, gerçekten işlevselliği değiştirmiyor. Oluşturulan SQL'de koddan çok göreceksiniz.

+1

Dang, herkes beni ona vurur. Hah. – antinescience

İlgili konular