Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mysql SUMA pól VARCHAR bez użycia CAST

MySQL wykonuje cichą konwersję łańcucha w kontekście numerycznym. Ponieważ oczekuje liczby dla sum() , MySQL po prostu wykonuje konwersję przy użyciu wiodących „liczb” z ciągu. Zwróć uwagę, że obejmuje to kropki dziesiętne, znak minus, a nawet e reprezentujący notację naukową. A więc '1e6' jest interpretowany jako liczba.

W kodzie osobiście dokonałbym konwersji wyraźnie, dodając 0 :

SELECT SUM(parametervalue + 0) FROM table

Jak na ironię, cast() może zwrócić błąd, jeśli ciąg nie jest w formacie numerycznym, ale w takim przypadku nie zwraca błędu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie libpqxx do przechowywania danych zbiorczo LUB jak używać instrukcji COPY w libpqxx

  2. Ta witryna jest niedostępna po przeniesieniu witryny Wordpress

  3. MaxListenersExceededWarning:Wykryto możliwy wyciek pamięci EventEmitter. Dodano 11 nasłuchiwaczy wiadomości. Użyj emitter.setMaxListeners(), aby zwiększyć limit

  4. Jak InnoDB przechowuje kolumny znaków?

  5. emulacja funkcji substring_index() MySQL w PGSQL