sql >> Databasteknik >  >> RDS >> Mysql

MySQL-heltalsjämförelse ignorerar efterföljande alfatecken

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


  1. MySQL - Att kombinera INSERT, VALUES och SELECT?

  2. Hur man kör Oracle sql-skript med java-kod

  3. Återställning efter fel MySQL-uppdateringsfråga?

  4. Hur kan jag välja raden med högsta ID i MySQL?