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 đó.