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

Como evitar a conversão implícita do MySQL (valor DOUBLE incorreto truncado)


Você deve tentar convertê-lo explicitamente usando CAST ou CONVERT funcione como abaixo e não conte com a conversão implícita.
SELECT * FROM test WHERE sample_col = cast('foo' as int);

(OR)

SELECT * FROM test WHERE cast(sample_col as varchar) = 'foo';

Além disso, não faz sentido comparar um INT coluna de tipo com string value e AFAIK, não há essa configuração presente para interromper a conversão implícita. se você realmente deseja resultar em erro em vez de convertê-lo em 0, converta-o explicitamente; nesse caso vai dar erro.

Consulte Conversão de tipo na avaliação de expressão Para maiores informações.