Vous mélangez les types. ID
est un entier (ou un nombre). Vous le comparez à une chaîne. Donc, MySQL doit décider quel type utiliser pour la comparaison. Quels types sont utilisés ? Eh bien, une chaîne? Non. Un numéro. La chaîne est convertie en nombre, en utilisant les premiers chiffres. Donc, ça devient 101
et allumettes.
Vous ne devriez vraiment comparer que des nombres à des nombres et des chaînes à des chaînes. Vous pouvez essayer d'écrire le code comme suit :
SELECT * FROM tableName WHERE ID = 101foo2
Cependant, vous obtiendrez une erreur. Une autre possibilité est de forcer la conversion en chaîne :
SELECT * FROM tableName WHERE CAST(ID as CHAR) = '101foo2'