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;