Mysql
 sql >> Database >  >> RDS >> Mysql

mysql SUM dei campi VARCHAR senza utilizzare CAST

MySQL esegue la conversione silenziosa di una stringa in un contesto numerico. Perché si aspetta un numero per sum() , MySQL esegue semplicemente la conversione utilizzando i "numeri" iniziali di una stringa. Nota che questo include punti decimali, segno meno e persino e che rappresenta la notazione scientifica. Quindi, '1e6' viene interpretato come un numero.

Nel codice, renderei personalmente esplicita la conversione aggiungendo 0 :

SELECT SUM(parametervalue + 0) FROM table

Ironia della sorte, il cast() potrebbe restituire un errore se la stringa non è in un formato numerico, ma in questo caso non viene restituito un errore.