MySQL führt eine stille Konvertierung für einen String in einem numerischen Kontext durch. Weil es eine Zahl für sum()
erwartet , führt MySQL die Konvertierung einfach mit den führenden "Zahlen" aus einer Zeichenfolge durch. Beachten Sie, dass dies Dezimalpunkte, Minuszeichen und sogar e
enthält die wissenschaftliche Notation darstellt. Also '1e6'
wird als Zahl interpretiert.
Im Code würde ich persönlich die Konvertierung explizit machen, indem ich 0
hinzufüge :
SELECT SUM(parametervalue + 0) FROM table
Ironischerweise der cast()
kann einen Fehler zurückgeben, wenn die Zeichenkette kein numerisches Format hat, aber in diesem Fall wird kein Fehler zurückgegeben.