Det är vanligt beteende i de flesta programmeringsspråk att tolka inledande siffror som ett tal när man konverterar en sträng till ett tal.
Det finns ett par sätt att hantera detta:
Använd förberedda satser och definiera platshållaren där du sätter värdet till att vara av en numerisk typ. Detta kommer att förhindra att strängar alls sätts in där.
Kontrollera på ett högre lager av programmet för att validera indata och se till att det är numeriskt.
Använd det BINÄRA nyckelordet i mysql (jag gissar bara att det här skulle fungera, har faktiskt aldrig provat det eftersom jag alltid har implementerat ett korrekt valideringssystem innan jag kör en fråga) -
SELECT *
FROM table
WHERE BINARY ID = '32anystring';