Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

mysql SUM de campos VARCHAR sem usar CAST


O MySQL faz a conversão silenciosa para uma string em um contexto numérico. Porque espera um número para o sum() , o MySQL simplesmente faz a conversão usando os "números" iniciais de uma string. Observe que isso inclui pontos decimais, sinal de menos e até e representando notação científica. Então, '1e6' é interpretado como um número.

No código, eu pessoalmente tornaria a conversão explícita adicionando 0 :
SELECT SUM(parametervalue + 0) FROM table

Ironicamente, o cast() pode retornar um erro se a string não estiver em um formato numérico, mas isso não retornará um erro nesse caso.