sql >> Databáze >  >> RDS >> Mysql

mysql SUM polí VARCHAR bez použití CAST

MySQL provádí tichý převod řetězce v číselném kontextu. Protože očekává číslo pro sum() , MySQL jednoduše provede převod pomocí úvodních „číslic“ z řetězce. Všimněte si, že to zahrnuje desetinné čárky, znaménko mínus a dokonce e představující vědecký zápis. Takže '1e6' je interpretováno jako číslo.

V kódu bych osobně udělal konverzi explicitní přidáním 0 :

SELECT SUM(parametervalue + 0) FROM table

Je ironií, že cast() může vrátit chybu, pokud řetězec není v číselném formátu, ale v takovém případě to nevrací chybu.




  1. Převeďte BufferedInputStream na obrázek

  2. Jak se může VBA připojit k databázi MySQL v Excelu?

  3. Chyba migrace php artisan:zadán název uzlu ani název_serveru nebo neznám

  4. Omezení cizího klíče MySQL – celočíselný sloupec