Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual é a diferença entre =e :=no MySQL?


Ambos são operadores de atribuição mas uma coisa que eu posso encontrar suas diferenças é que = pode ser usado para realizar uma operação booleana enquanto := não podes.

válido :SUM(val =0)
Inválido:SUM(val :=0)

DE variáveis ​​definidas pelo usuário

Mais uma coisa, Você também pode atribuir um valor a uma variável de usuário em instruções diferentes de SET. Nesse caso, o operador de atribuição deve ser :=e não =porque o último é tratado como o operador de comparação =em instruções não 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 | 
+------+------+------+--------------------+