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

mysql wandelt Zeichenfolgen automatisch in Ganzzahlen um

Schreiben Sie Ihre Abfragen einfach so, dass sie keine numerischen Felder verwenden, als wären es Textfelder.

Wenn id ein numerisches Feld ist, dann Ihr where Klausel kann niemals nützlich sein. Ja, es wäre gut, wenn sich MySQL aktiv darüber beschweren würde - aber grundsätzlich sollten Sie keinen Code schreiben, der von vornherein schlechte Abfragen ausführt.

Wie ist diese Abfrage in Ihr System gelangt? Ist der 'asdf' Teil direkte Benutzereingabe? Können Sie stattdessen parametrisiertes SQL verwenden?

Wenn Sie es wirklich beabsichtigen Um ein numerisches Feld abzufragen, sollten Sie zunächst sicherstellen, dass Ihre Eingabe numerisch ist. Wandeln Sie den Text in Ihrem aufrufenden Code in eine Ganzzahl um, nicht in der Datenbank.