Mysql
 sql >> Base de données >  >> RDS >> Mysql

mysql autocasting chaîne en entier

À partir de la documentation :

Votre cas relève de "tous les autres cas".

La chaîne sera convertie en un FLOAT puis comparé à votre int_val .

Si la chaîne est correctement convertie (des valeurs telles que '1' , '0.1' ou '1E5' ), la valeur résultante sera comparée à l'entier.

Sinon (disons que vous transmettez une valeur comme '1235xxx' ), les éventuels premiers chiffres seront convertis en flottant (0 s'il n'y en a pas), et le reste est tronqué. De plus, un avertissement sera généré.

La raison du passage de l'identifiant dans une chaîne peut être que votre identifiant ne doit pas nécessairement être un entier. Il peut également s'agir d'une chaîne ou d'une date.

L'ORM a probablement un code générique pour générer DELETE requête qui fonctionnerait sur n'importe quel type de données.