È 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';