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.