MySQLは、数値コンテキストで文字列のサイレント変換を行います。 sum()
の数値を想定しているため 、MySQLは、文字列の先頭の「数字」を使用して変換を行うだけです。これには小数点、マイナス記号、さらにはe
が含まれることに注意してください 科学的記数法を表します。したがって、'1e6'
数字として解釈されます。
コードでは、個人的に0
を追加して変換を明示的にします :
SELECT SUM(parametervalue + 0) FROM table
皮肉なことに、cast()
文字列が数値形式でない場合はエラーを返す可能性がありますが、その場合はエラーを返しません。