Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A comparação de inteiros do MySQL ignora caracteres alfa à direita


É um comportamento comum na maioria das linguagens de programação interpretar numerais iniciais como um número ao converter uma string em um número.

Existem algumas maneiras de lidar com isso:

Use instruções preparadas e defina o espaço reservado onde você está colocando o valor como um tipo numérico. Isso impedirá que as cordas sejam colocadas lá.

Verifique em uma camada superior do aplicativo para validar a entrada e certifique-se de que seja numérica.

Use a palavra-chave BINARY no mysql (estou apenas supondo que isso funcionaria, nunca tentei, pois sempre implementei um sistema de validação adequado antes de executar uma consulta) -
SELECT *
FROM table 
WHERE BINARY ID = '32anystring';