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

La comparaison d'entiers MySQL ignore les caractères alpha de fin

Il est courant dans la plupart des langages de programmation d'interpréter les premiers chiffres comme un nombre lors de la conversion d'une chaîne en nombre.

Il existe plusieurs façons de gérer cela :

Utilisez des instructions préparées et définissez l'espace réservé où vous placez la valeur comme étant de type numérique. Cela empêchera les chaînes d'y être insérées.

Vérifiez à une couche supérieure de l'application pour valider l'entrée et assurez-vous qu'elle est numérique.

Utilisez le mot-clé BINARY dans mysql (je suppose que cela fonctionnerait, je ne l'ai jamais réellement essayé car j'ai toujours mis en place un système de validation approprié avant d'exécuter une requête) -

SELECT *
FROM table 
WHERE BINARY ID = '32anystring';