No MySQL,
:=
é um operador de atribuição:SELECT @foo := 'bar'; // variable 'foo' now has value 'bar'
return value: 'bar'
enquanto
=
é um teste de igualdade:SELECT @foo = 'hi mom'; // does variable 'foo' have the value 'hi mom';
return value: false ('bar' == 'hi mom' -> false)
Observe que você PODE fazer testes de igualdade E atribuição com
set
consultas:SET @foo = 'bar' = 'baz';
que fará com que
@foo
a ser atribuído false
, o resultado booleano de 'bar' = 'baz'
. Ele é executado da seguinte forma:SET @foo = ('bar' = 'baz');
SET @foo = false;