MySQL thực hiện chuyển đổi im lặng cho một chuỗi trong ngữ cảnh số. Bởi vì nó mong đợi một số cho sum() , MySQL chỉ đơn giản thực hiện chuyển đổi bằng cách sử dụng các "số" hàng đầu từ một chuỗi. Lưu ý rằng điều này bao gồm dấu thập phân, dấu trừ và thậm chí cả e đại diện cho ký hiệu khoa học. Vì vậy, '1e6' được hiểu là một số.
Trong mã, cá nhân tôi sẽ thực hiện chuyển đổi rõ ràng bằng cách thêm 0 :
SELECT SUM(parametervalue + 0) FROM table
Trớ trêu thay, cast() có thể trả về lỗi nếu chuỗi không ở định dạng số, nhưng điều này không trả lại lỗi trong trường hợp đó.