sql >> Base de Datos >  >> RDS >> Mysql

mysql SUM de campos VARCHAR sin usar CAST

MySQL realiza una conversión silenciosa para una cadena en un contexto numérico. Porque espera un número para el sum() , MySQL simplemente hace la conversión usando los "números" iniciales de una cadena. Tenga en cuenta que esto incluye puntos decimales, signo menos e incluso e representación de la notación científica. Entonces, '1e6' se interpreta como un número.

En el código, personalmente haría explícita la conversión agregando 0 :

SELECT SUM(parametervalue + 0) FROM table

Irónicamente, el cast() podría devolver un error si la cadena no está en formato numérico, pero esto no devolverá un error en ese caso.