sql >> Base de Datos >  >> RDS >> Mysql

La comparación de enteros de MySQL ignora los caracteres alfa finales

Es un comportamiento común en la mayoría de los lenguajes de programación interpretar los números iniciales como un número al convertir una cadena en un número.

Hay un par de maneras de manejar esto:

Use declaraciones preparadas y defina el marcador de posición donde está colocando el valor para que sea de tipo numérico. Esto evitará que se coloquen cuerdas allí.

Verifique en una capa superior de la aplicación para validar la entrada y asegúrese de que sea numérica.

Use la palabra clave BINARY en mysql (supongo que esto funcionaría, nunca lo probé, ya que siempre implementé un sistema de validación adecuado antes de ejecutar una consulta) -

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