Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi SELECT ... WHERE id =a renvoie un résultat si la valeur est 0

MySQL convertit silencieusement les chaînes en nombres dans un contexte numérique.

Pour ce faire, il convertit les premiers caractères numériques (tels que les chiffres, le signe moins et le point décimal).

S'il n'y a pas de chiffres, il s'arrête. Donc :

where id = 'a'

est interprété comme :

where id = 0

Moralité :n'utilisez jamais de guillemets simples autour de constantes numériques -- ou de constantes qui devraient être des nombres.