Qual è la differenza traQual è la differenza tra = e: = in mysql?
set test_var = 20;
e
set test_var:=20;
quanto entrambi sembrano assegnare il valore?
Qual è la differenza traQual è la differenza tra = e: = in mysql?
set test_var = 20;
e
set test_var:=20;
quanto entrambi sembrano assegnare il valore?
Entrambi sono operatori di assegnazione ma una cosa che posso trovare le loro differenze è che =
può essere utilizzato per eseguire l'operazione booleana, mentre :=
non può.
valida: SUM (val = 0)
non valido: SUM (val: = 0)
Ancora una cosa, è inoltre possibile assegnare un valore a una variabile utente in dichiarazioni diverse da SET. In questo caso, l'operatore di assegnazione deve essere: = e non = perché quest'ultimo viene trattato come operatore di confronto = in istruzioni 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 |
+------+------+------+--------------------+
È più o meno zucchero sintattico.
Date un'occhiata here
differenza più importante è
differenza =, l'operatore: = non viene mai interpretato come un confronto operatore. Ciò significa che è possibile utilizzare: = in qualsiasi istruzione SQL valida (non solo nelle istruzioni SET) per assegnare un valore a una variabile.
È possibile utilizzare solo: = per l'assegnazione - mai per il confronto. È solo un po 'di zucchero sintattico, non cambia affatto la funzionalità. Lo vedrai molto in SQL generato dal codice.
Dang, tutti mi picchiano. Hah. – antinescience