Mysql
 sql >> Database >  >> RDS >> Mysql

Il confronto tra numeri interi MySQL ignora i caratteri alfa finali

È comportamento comune nella maggior parte dei linguaggi di programmazione interpretare i numeri iniziali come numeri quando si converte una stringa in un numero.

Ci sono un paio di modi per gestirlo:

Utilizzare istruzioni preparate e definire il segnaposto in cui si inserisce il valore in modo che sia di tipo numerico. Ciò impedirà del tutto di inserire stringhe.

Verificare a un livello superiore dell'applicazione per convalidare l'input e assicurarsi che sia numerico.

Usa la parola chiave BINARY in mysql (sto solo indovinando che funzionerebbe, non l'ho mai provato perché ho sempre implementato un sistema di convalida adeguato prima di eseguire una query) -

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