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

mysql autocasting string to integer

Aus der Dokumentation:

Ihr Fall fällt unter "alle anderen Fälle".

Der String wird in ein FLOAT umgewandelt und dann mit Ihrem int_val verglichen .

Wenn der String gut gecastet wird (Werte wie '1' , '0.1' oder '1E5' ), wird der resultierende Wert mit der Ganzzahl verglichen.

Wenn nicht (sagen wir, Sie übergeben einen Wert wie '1235xxx' ), werden die möglichen führenden Ziffern in einen Float umgewandelt (0 wenn keine), und der Rest wird abgeschnitten. Außerdem wird eine Warnung generiert.

Der Grund für die Übergabe der ID in einem String könnte sein, dass Ihre ID nicht unbedingt eine Ganzzahl sein muss. Es könnte auch ein String oder ein Datum sein.

Wahrscheinlich hat das ORM einen generischen Code zum Generieren von DELETE Abfrage, die auf jedem Datentyp funktionieren würde.