Du er sandsynligvis bedre stillet ved at bruge MySQL's implicitte konvertering:
select sum(trim(replace(col, '$', '')) + 0.0)
Den tavse konvertering vil inkludere cents. Derudover vil ikke-numeriske tegn efter tallet ikke forårsage en fejl. trim()
vil fjerne indledende mellemrum, som også kan påvirke konverteringen.