MySQL извършва тихо преобразуване за низ в числов контекст. Тъй като очаква число за sum() , MySQL просто извършва преобразуването, използвайки водещите "числа" от низ. Имайте предвид, че това включва десетични точки, знак минус и дори e представляваща научна нотация. И така, '1e6' се интерпретира като число.
В кода аз лично бих направил преобразуването изрично, като добавя 0 :
SELECT SUM(parametervalue + 0) FROM table
По ирония на съдбата cast() може да върне грешка, ако низът не е в числов формат, но това не връща грешка в този случай.