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

mysql SOMME des champs VARCHAR sans utiliser CAST

MySQL effectue une conversion silencieuse pour une chaîne dans un contexte numérique. Parce qu'il attend un nombre pour le sum() , MySQL effectue simplement la conversion en utilisant les "nombres" principaux d'une chaîne. Notez que cela inclut les points décimaux, le signe moins et même e représentant la notation scientifique. Donc, '1e6' est interprété comme un nombre.

Dans le code, je rendrais personnellement la conversion explicite en ajoutant 0 :

SELECT SUM(parametervalue + 0) FROM table

Ironiquement, le cast() peut renvoyer une erreur si la chaîne n'est pas au format numérique, mais cela ne renvoie pas d'erreur dans ce cas.