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

Por que SELECT ... WHERE id =a retorna um resultado se o valor for 0


O MySQL silenciosamente converte strings em números em um contexto numérico.

Ele faz isso convertendo os caracteres numéricos iniciais (como dígitos, sinal de menos e ponto decimal).

Se não houver dígitos, ele pára. Então:
where id = 'a'

é interpretado como:
where id = 0

Moral:Nunca use aspas simples em constantes numéricas -- ou constantes que deveriam ser números.