Mysql
 sql >> база данни >  >> RDS >> Mysql

mysql SUM от VARCHAR полета без използване на CAST

MySQL извършва тихо преобразуване за низ в числов контекст. Тъй като очаква число за sum() , MySQL просто извършва преобразуването, използвайки водещите "числа" от низ. Имайте предвид, че това включва десетични точки, знак минус и дори e представляваща научна нотация. И така, '1e6' се интерпретира като число.

В кода аз лично бих направил преобразуването изрично, като добавя 0 :

SELECT SUM(parametervalue + 0) FROM table

По ирония на съдбата cast() може да върне грешка, ако низът не е в числов формат, но това не връща грешка в този случай.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Хронични остарели резултати при използване на MySQLdb в Python

  2. Търсене със стойност, разделена със запетая, mysql

  3. MySQL:Ограничете две колони, така че една от тях винаги да е NULL

  4. SQL JOIN две таблици с AVG

  5. UNPIVOT mysql данни към друга таблица