phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

requête mysql affichant un mauvais résultat

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'