Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Integer-Vergleich ignoriert nachgestellte Alpha-Zeichen

In den meisten Programmiersprachen ist es üblich, führende Ziffern als Zahl zu interpretieren, wenn ein String in eine Zahl umgewandelt wird.

Es gibt mehrere Möglichkeiten, dies zu handhaben:

Verwenden Sie vorbereitete Anweisungen, und definieren Sie den Platzhalter, an den Sie den Wert setzen, als numerischen Typ. Dadurch wird verhindert, dass dort überhaupt Strings eingefügt werden.

Überprüfen Sie die Eingabe auf einer höheren Ebene der Anwendung, um sicherzustellen, dass sie numerisch ist.

Verwenden Sie das BINARY-Schlüsselwort in mysql (ich vermute nur, dass dies funktionieren würde, habe es nie wirklich versucht, da ich immer nur ein geeignetes Validierungssystem implementiert habe, bevor ich eine Abfrage ausführe) -

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