En resumen, cuando se utiliza SET
que ambos actúan como operadores de asignación, pero en ninguna de las declaraciones no establecidos, :=
es para assingment y =
comprueba la igualdad .
Para SET, puede utilizarse = o: = como el operador de asignación.
También puede asignar un valor a una variable de usuario en sentencias que no sean SET. En este caso, el operador de asignación debe ser: = = y no porque = se trata como un operador de comparación en los estados no-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 |
+------+------+------+--------------------+
Tomado de MySQL 8.4 User Defined Variables
Parece que está en desuso: 'mysql> @num: = 0;' dará error. – user198729
¿Es eso una declaración válida de MySQL? ¿Puedes definir variables así? –
Por el bien de cualquiera que lea estos comentarios, no está en desuso. Y gracias @AnthonyForloney por diseminar lo básico. Es por eso que amo stackoverflow. – billynoah